Регулярных циклических структур»
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

1) Изучить материал учебника [1] (п. 1.5).

2) Выбрать индивидуальное задание из табл. 1.5.3-1.

3) В соответствии с индивидуальным заданием создать 1-й сценарий с функцией решения задачи. Эта функция может быть разбита на отдельные вспомогательные функции для реализации базовых алгоритмов, например, вычисления конечных сумм, разветвлений, поиска минимума и максимума в последовательности данных и т.п.

4) Написать программный код 2-го сценария выполнения задания, который должен содержать ввод исходных данных, вызов функции 1-го  сценария и вывод результатов.

5) По требованию преподавателя разработать графический интерфейс пользователя. В интерфейсе предусмотреть отображение на форме исходных данных и результатов. Написать программный код сценария создания интерфейса пользователя.

6) Выполнить созданное приложение и получить решение.

7) Оформить отчет по выполненной работе.

 

 

Варианты индивидуальных заданий

 

Таблица. 1.5.3-1

Задание
1 Ввести натуральное число nи вектор действительных чисел y 1 , y 2 ,… ynНайти: max(|z 1 |,| z 2 |,…| zn |), где
2 Вычислить  где
3 Ввести натуральное число n и массив a 1 , a 2 ,… an. Сформировать массив w 1 , w 2 ,…, wn по правилу: wi = ai 2, если ai кратно 3; wi = ai /3, если ai кратно 5; а в остальных случаях wi = Cos ( ai ).
4 Ввести натуральное число n и вектор действительных чисел . Вычислить произведение , где
5 Ввести натуральное число n и действительное число х. Вычислить и вывести на экран искомую сумму и каждое слагаемое суммы:  
6 Ввести натуральное число n. Найти наибольшее среди значений , где k=1, 2,…,n, а также сумму всех полученных значений.  
7 Ввести натуральное число n и вычислить сумму значений , где (i=1,2,…n). Вывести индексы и полученные значения в виде таблицы. Определить минимальное значение элемента массива а.
8 Ввести натуральное число n и вектор действительных чисел . Определить каких положительных или отрицательных чисел в векторе больше, а также наибольшее из отрицательных и наименьшее из положительных значение .
9 Ввести матрицу B(5,7) и сформировать из первых наибольших элементов строк массива B вектор С(5). Вывести его элементы в строку и столбец.
10 Сформировать вектор по правилу: , где k=2,3,…7, если Найти сумму квадратов тех чисел, модуль которых не превосходят 2.
11 Ввести натуральное число n и вектор действительных чисел . Найти количество двух соседних положительных чисел и двух соседних чисел разного знака.
12 Ввести квадратную матрицу А(4,4) и, сформировав из максимальных элементов ее столбцов вектор X, и вывести его элементы на экран в прямой и обратной последовательности.
13 Ввести вектор целых чисел . Преобразовать его таким образом, чтобы сначала располагались нули, а затем все остальные элементы. Определить сумму и количество элементов, значения которых кратны 5.
14 Ввести вектор вещественных чисел . Создать из его элементов массив x, каждый элемент которого максимальный из 3-х элементов, идущих подряд в массиве z.
15 Сформировать матрицу А(4,4) по правилу: Найти и вывести значения и индексы двух одинаковых элементов. Если таковых не окажется, вывести сообщение.
16 Сформировать матрицу D(3,2) по правилу: Создать и вывести на экран вектор, состоящий из отрицательных элементов полученной матрицы.
17 Задать натуральное число n. Посчитать, какая из матриц размером nна n содержит большее количество положительных элементов, если ее элементы формируются по правилу: Соответствующее сообщение и сформированные матрицы вывести на экран.
18 Ввести квадратную матриц А(4,4) из вещественных чисел. Найти сумму значений наибольших элементов ее строк. Сформировать и вывести на экран новую матрицу В(4,4), каждый элемент которой получен путем умножения его значения на найденную сумму.
19 Ввести матрицу вещественных чисел А(4,7). Сформировать и вывести на экран вектор С(4), элементами которого являются: · наибольший из элементов в 1-й строке; · наименьший из элементов во 2-й строке; · среднее арифметическое элементов 3-й строки; · сумма элементов 4-й строки.  
20 Ввести натуральное число n и матрицу вещественных чисел С(n,n). Найти среднее арифметическое наибольшего и наименьшего значений ее элементов, и, заменив этим значением диагональные элементы матрицы С, вывести полученную матрицу на экран.  
21 Ввести натуральные числа k1, k2 и действительную матрицу размера 8х4. Поменять в матрице местами элементы k1 и k2 строк и вывести на экран модифицированную матрицу.
22 Ввести натуральные числа m,n и матрицу целых чисел С(m,n). Сформировать и вывести на экран вектор, состоящий из сумм четных элементов каждого столбца матрицы С(m,n).
23 Ввести вектора действительных чисел x (5),y (6),z (7). Вывести значение величины t, вычисляемой по следующему алгоритму:  
24 Ввести натуральное число n и массив . Получить и вывести на экран матрицу с(2,n), первая строка которой – массив b, упорядоченный по возрастанию, а вторая – массив b, упорядоченный по убыванию.  
25 Ввести вектор действительных чисел x (10). Получить из него другой массив p(10), элементы которого упорядочены по возрастанию.  
26 Ввести матрицу вещественных чисел А(3,4). Заменить элементы строки матрицы с максимальной суммой значений элементов – единицами, с минимальной - 2, а остальные элементы матрицы положить равными нулю.
27 Сформировать матрицу А(4,4) по правилу Удалить из него столбцы, содержащие элементы, меньшие 10. Вывести на экран сформированную и модифицированную матрицы.
28 Сформировать матрицу В(9,3) по правилу  Определить наименьший элемент в каждой строке матрицы и записать его в соответствующий элемент вектора С. Вывести на экран сформированную матрицу и полученный вектор С.  
29 Ввести матрицу вещественных чисел А(3,4), все элементы которой различны. Найти в каждой строке матрицы наибольшее и наименьшее значение, и записать в соответствующий элемент вектора С(3) сумму значений индексов столбцов, в которых они расположены. Вывести на экран полученный вектор С.  
30 Ввести матрицу вещественных чисел А(4,4). Сформировать и вывести на экран: · B (4) – вектор полученный из элементов главной диагонали; · C (4) - вектор полученный из элементов побочной диагонали  

 

 

1.5.3.3 Пример выполнения задания

 

1) Задание: Ввести натуральные числа m,n и сформировать матрицу целых чисел С(m,n). Найти среднее арифметическое каждой строки матрицы и сформировать из этих значений вектор. Найти в полученном векторе номер минимального элемента

2) Программный код 1-го сценария:

 

// Сценарий-функция zadacha1_5_2.sce решения задачи обработки матрицы   // Найти среднее арифметическое каждой строки матрицы // сформировать из этих значений вектор, // и найти в векторе номер минимального элемента // Входные параметры: матрица A, число строк m и число столбцов n // Выходные параметры: вектор B значений среднего арифметического каждой // строки матрицы, nom - номер минимального элемента   function [B, nom]=zadacha1_5_2(A, m, n) // вычисление среднего арифметического каждой строки //и формирование вектора for i=1:m    s=0;    for j=1:n        s=s+A(i,j);    end; B(i)=s/n; еnd    //Определение в векторе минимального элемента и номера Minim=B(1); nom=1; for i =2:m    if B(i)<minim        minim=B(i);        nom=i;    end end endfunction   // Конец сценария zadacha1_5_2.sce =================================

 

 

3) Графический интерфейс пользователя

Форма графического интерфейса пользователя приведена на рисунке:

 

 

 

4) Программный код создания графического интерфейса и выполнения задания, который содержит ввод исходных данных, вызов функции решения задачи и вывод результатов:

 

// Сценарий Pr1_5_2_ GUI .sce задания 2

// Создание графического интерфейса пользователя

 

// Создание графического окна

f1=figure('position',[20,40,480,290],…

'figure_name','Программирование алгоритмов регулярной структуры');

 

// Определение текстовых полей для ввода исходных данных

// Текстовое поле заголовка Ввод исходных данных

text_vvod=uicontrol(f1,'style','text','string','',…

'position', [20,240,150,20],'String',' Ввод исходных данных');

// Поле ввода m

edit_m=uicontrol(f1,'style','edit','string','6',...

'position',[70, 200, 40, 20]);

text_m=uicontrol(f1,'style','text','string','m',...

'position',[20,200,40,20]);

// Поле ввода n

edit_n=uicontrol(f1,'style','edit','string','4',...

'position',[70, 170, 60, 20]);

text_n=uicontrol(f1,'style','text','string','n',...

'position',[20,170,40,20]);

 

// Определение текстовых полей для вывода результатов итераций

list1=uicontrol(f1,'style','listbox','position',[200,70,150,160]);

list2 = uicontrol(f1,'style','listbox','position', [370, 70, 80, 160]);

editRez = uicontrol(f1,'style','edit','position', [360, 20, 80, 20]);

// Заголовки полей вывода результатов

TextRez1 = uicontrol(f1, 'style', 'text', 'string', '',…

'position', [200,230,150,20],…

'string', 'Исходная матрица:');

TextRez2 = uicontrol(f1, 'style', 'text', 'string', '',…

'position', [370,230,100,20],…

'string', 'Получен вектор:');

TextRez3 = uicontrol(f1,'style','text', 'string', '',…

'position', [200,20,130,20],…

'string', 'Номер минимального элемента:');

 

// Определение кнопки Решить

bt1 = uicontrol(f1, 'style', 'pushbutton', 'string', 'Решить',...

'position', [20,110,90,40],'CallBack','YY');

 

// Определение кнопки Очистить           

bt2 = uicontrol(f1, 'style', 'pushbutton', 'string', 'Очистить',...

'position', [20,20,90,40],'CallBack','C');

// Конец сценария Pr1_5_2_GUI.sce ==========================================

// Сценарий выполнения задания Pr1_5_2.sce

// Подключение сценария создания интерфейса

exec(' Pr1_5_2_GUI.sce');

// Подключение сценария-функции решения задачи

exec('zadacha1_5_2.sce');

 

// Функция создания строковой матрицы для вывода числовой матрицы

// Входной параметр - выводимая матрица

// Выходной параметр - матрица строк

function vA=vivodMatr(A)

[m, n] = size(A);

vA=['']; // Создание пустой строковой матрицы

//Изменение ee размера под размер выводимой матрицы

vA=resize_matrix(vA,m,n);    

for i =1:m

  for j=1:n

   vA(i)=vA(i)+sprintf("%7s", string(A(i,j)));

end

  end

endfunction

 

// Функция YY содержит инструкции ввода исходных данных,

// генерации матрицы случайными числами, и ее вывод

// вызов функции решения задачи

// из сценария zadacha1_5_2.sce и инструкции вывода результата

// Выполнение функции YY инициируется нажати ем кнопки "Выполнить"

function YY()

// считывание числа строк матрицы и преобразование в число

m =eval(get(edit_m,'string')) ;

// считывание числа столбцов матрицы и преобразование в число

n = eval(get(edit_n,'string'));

//Генерация матрицы размером m×n и значениями от 0 до 10

A=grand(m,n,"uin",0,10);

//Вызов функции создания строковой матрицы из исходной числовой

vA=vivodMatr(A);

// Вывод в соответствующее текстовое поле list1

set(list1, 'string', vA);

//Вызов функции решения задачи

[B,nom]=zadacha1_5_2(A,m,n);

// Вывод полученного вектора в соотв. текс. поле list2

set(list2, 'string', sprintf("%1.5f\n\n\n", B));

// Вывод найденного номера в соотв. текс. поле editRez

set(editRez, 'string', sprintf("%d", nom));

endfunction

 

// Функция С очистки текстовых полей

// Выполнение функции выполняется нажатием кнопки "Очистить"

function C()

set(edit_m, 'string', "");

set(edit_n, 'string', "");

set(editRez, 'string', "");

set(list1, 'string', "");

set(list2, 'string', "");

endfunction

 

//Конец сценария Pr1_5_2.sce=============================================

 

 

-->// Сессия командного окна задания 2

-->// Практическое занятие 1.5 по теме:

-->//«Программирование алгоритмов регулярной структуры»

-->// Вариант 0, задание 2

-->// Выполнил: Студент группы БИН1801 Иванов И.И.

-->// Загрузка сценария 'Pr1_5_2.sce'

-->exec('Pr1_5_2.sce');

 

-->// Конец сессии ========================================================

5) Результат выполнения приложения

 

Содержание отчета

 

1) Титульный лист

2) Название и цель практического занятия

3) Общее задание

4) Графический интерфейс пользователя (по требованию преподавателя).

5) Сценарии, вначале которых должна быть введена информация в виде комментариев:

· имя и назначение сценария;

· номер задания и формулировка решаемой задачи и/или краткое перечисление действий, реализуемых в сценарии.

6) Протокол сессии Командного окна, вначале которого должна быть введена информация в виде комментариев:

· название практического занятия;

· вариант индивидуального задания и номер задания;

· ФИО студента, номер группы;

· краткое перечисление действий, выполняемых во время сессии.

 

 

1.5.4.1 Общее задание №3

«Программирование алгоритмов обработки матриц»

 

1) Изучить материал учебника [1] (п. 1.5).

2) Выбрать индивидуальное задание из табл. 1.5.4-1.

3) В соответствии с индивидуальным заданием создать 1-й сценарий с необходимыми функциями для реализации базовых алгоритмов  (например, вычисления конечных сумм, разветвлений, поиска минимума и максимума в последовательности данных и т.п.) и с функцией решения задачи

4) Написать программный код 2-го сценария, который содержит   ввод исходных данных, вызов функции из 1-го сценария решения задачи и вывод результатов.

5) По требованию преподавателя разработать графический интерфейс пользователя. В интерфейсе предусмотреть отображение на форме исходных данных и результатов. Написать сценарий создания интерфейса пользователя.

6) Получить решение.

7) Оформить отчет по выполненной работе.

Варианты индивидуальных заданий

Таблица 1.5.4-1

Задание
1 Составить программу, которая получает матрицу Х размером m*n и вектор A, размером m. Строку с номером i назовем отмеченной, если соответствующий i элемент вектора A больше 0, и неотмеченной – в противном случае. Программа формирует новую матрицу по следующему правилу: все отрицательные элементы в отмеченных строках исходной матрицы в формируемой матрице программа заменяет отрицательной единицей, положительные заменяет положительной единицей, а нулевые остаются без изменений. Неотмеченные строки исходной матрицы копируются в новую матрицу в обратном порядке.
2 Составить программу, которая получает матрицу Х размером m*n и если в исходной матрице есть строки и столбцы, все элементы которой равны 0, то программа уплотняет исходную матрицу влево и вверх, а затем формирует новую матрицу, поменяв местами строки и столбцы. Программа выдает на экран исходную и сформированную матрицу, сообщив, уплотнялась ли исходная матрица.  
3 Составить программу, которая получает матрицу Х размером m*n и вектор A, размером к. Программа формирует новую матрицу, в которую включены только те строки, которые содержат хотя бы одно число из вектора А.  
4 Составить программу, которая получает матрицу В размером m*n и формирует новую матрицу, удалив из исходной столбец и строку, на пересечении которых находится наибольший по модулю элемент.  
5 Составить программу, которая получает матрицу Х размером m*n и вектор А, размером m. Каждому элементу вектора поставлена в соответствие строка с тем же номером. Программа сортирует вектор А в порядке возрастания и формирует новую матрицу, расположив строки исходной матрицы в том же порядке, что и элементы вектора после сортировки.
6 Составить программу, которая получает матрицу Х размером m*n. Программа в каждой строке определяет наименьший элемент и его индексы и формирует из этих чисел матрицу, расположив в первом ее столбце наименьшие элементы строк, а во втором и третьем столбцах их индексы.  
7 Составить программу, которая получает матрицу В размером m*n и формирует новую матрицу, включив в нее только те строки, элементы которых не образуют арифметической прогрессии. Если таких строк не найдено, то новая матрица не формируется и об этом выдается сообщение.  
8 Составить программу, которая получает матрицу А размером m*n и формирует из нее матрицу В, поменяв местами строки и столбцы. Для каждой из матриц функция вычисляет числа , где m- количество строк, а n- количество столбцов, и выдает сообщение об их равенстве или неравенстве.  
9 Составить программу, которая получает матрицу Х размером m*n и число К. Если программа находит число К среди элементов исходной матрицы, то она удаляет из исходной матрицы столбцы с элементом, равным К, в противном случае программа формирует новую матрицу, записав в нее только четные строки. Программа выдает на экран исходную матрицу и новую, если ее удалось создать.
10 Составить программу, которая, получив матрицу, размером m*n, создает новую матрицу. В новой матрице наибольший элемент каждой строки меняется местами с наименьшим элементом этой же строки.  
11 Составить программу, которая получает матрицу А размером m*n и формирует новую матрицу, поместив в нее только те строки из исходной матрицы, которые образуют монотонную последовательность.  
12 Составить программу, которая получает матрицу В размером n*n и проверяет свойство где В- исходная матрица, Т означает транспонирование  Составьте функции транспонирования матрицы и сравнения двух матриц на равенство.
13 Составить программу, которая, получив матрицу, размером m*n, создает новую матрицу, в которой наибольший элемент каждой строки меняется местами с элементом главной диагонали этой строки.  
14 Составить программу, которая получает матрицу А размером m*n. Из положительных элементов матрицы A программа формирует матрицу B, размером m*r. Количество элементов r в строке матрицы B определяется как максимальное число положительных элементов среди всех строк матрицы A. В каждой строке матрицы B расположены подряд положительные элементы соответствующей строки матрицы A. На место недостающих положительных значений в матрице В программа дописывает нули.
15 Составить программу, которая получает матрицу А размером m*n и формирует новую матрицу, все строки которой упорядочены по возрастанию.  
16 Составить программу, которая получает матрицу Х размером m*n и матрицу Y размером m*n. Программа формирует матрицу  Z размером m*n, где элемент (i,j)матрицы Z равен сумме элементов i-й строки матрицы X, которые отсутствуют  в j–м столбце матрицы Y.  
17 Составить программу, которая получает матрицу Х размером n*n и матрицу Y размером n*n. Программа из двух исходных квадратных матриц Х и Y формирует результирующую матрицу Z путем суммирования каждого элемента каждого столбца матрицы А с произведением соответствующей строки матрицы В.  
18 Составить программу, которая получает матрицу А размером m*n и формирует новую матрицу, строки которой расположены в порядке возрастания сумм элементов этих строк.  
19 Составить программу, которая получает матрицу А размером m*n . Программа создает новую матрицу, удалив из каждого столбца матрицы А минимальный и максимальные элементы.  
20 Составить программу, которая получает матрицу Х размером n*n. Программа определяет количество положительных, нулевых и отрицательных элементов в каждом столбце матрицы X и формирует из них матрицу Y, размером 3*n.  
21 Составить программу, которая получает матрицу Х размером m*n и формирует новую матрицу, получив ее из исходной перестановкой строк: первой с последней, второй с предпоследней и т.д.  
22 Составить программу, которая получает матрицу C размером m*n. Программа находит наибольший элемент матрицы С и его индексы и получает новую матрицу, разделив все элементы исходной матрицы (кроме найденного наибольшего) на сумму индексов самого элемента и индексов найденного максимального элемента.  
23 Составить программу, которая получает матрицу Х размером m*n и находит минимальный и максимальный элементы матрицы. Если оба элемента находятся под главной диагональю, то формируется новая матрица, из которой удалены строки и столбцы, на пересечении которых находятся эти элементы, в противном случае новая матрица не формируется и на экран выдается сообщение об этом.  
24 Составить программу, которая получает матрицу В размером m*n. Программа формирует новую матрицу, меняя местами элементы строки с номером i на элементы строки с номером j исходной матрицы В.  
25 Составить программу, которая получает матрицу Х размером m*n и формирует новую матрицу, удалив из исходной матрицы те строки или столбцы, которые оказались равными между собой. Программа выдает на экран исходную и сформированную матрицу с указанием, сколько строк и столбцов удалось удалить в исходной матрице.  
26 Составить программу, которая получает матрицу А размером m*n и формирует из нее матрицу В, получаемую из исходной перестановкой в каждой строке наименьшего по абсолютной величине элемента с ее диагональным.  
27 Составить программу, которая получает матрицу Х размером m*n и вектор А, размером k. Программа формирует новую матрицу, в которой элементы исходной матрицы, которые совпали с одним из элементов вектора А, заменяются 0. Если в новой матрице есть строки или столбцы, все элементы которых оказались равны 0, то об этом выдается сообщение.  
28 Составить программу, которая получает матрицу Х размером m*n и целое число К. Программа формирует новую матрицу, осуществив циклический сдвиг всех строк исходной матрицы вверх К раз.
29 Составить программу, которая получает матрицу А  размером m*n и, вычислив сумму и количество элементов матрицы А, находящихся под главной диагональю и удовлетворяющих условию , и формирует новую матрицу, удалив из исходной матрицы те строки, которые не содержат элементов отвечающих указанному условию.  
30 Составить программу, которая получает матрицу А размером m*n. Программа ищет в каждой строке максимальный элемент и в новой матрице ставит его в начало строки, а минимальный элемент ставит в конце строки, все остальные элементы исходной строки переписывает в строку новой матрицы в обратном порядке.

1.5.4.3 Пример выполнения задания

 

1) Задание: Составить программу, которая получает матрицу А размером m*n. Добавить к исходной матрице новую последнюю строку, состоящую из максимальных значений каждого столбца. Затем добавить к полученной матрице справа столбец произведений положительных элементов каждой строки. Если положительных элементов в строке матрицы нет, то принять произведение равным единице.

 

2) Программный код 1-го сценария

 

// Сценарий zadacha1_5_3.sce для решения задачи обработки матрицы

// Добавить к исходной матрице новую последнюю строку, состоящую из

// максимальных значений каждого столбца. Затем добавить справа

// к полученной матрице столбец произведений положительных

// элементов каждой строки

// Сценарий содержит 3 функции, которые разработаны для решения задачи

// Функция поиска максимального элемента каждого столбца

// и формирование из них вектора

// Входные параметры: матрица A

// Выходной параметр: вектор B содержащий значения

// максимальных элементов каждого столбца матрицы

function B=poisk_max(A)

//Определение числа строк и столбцов матрицы А

[m, n] = size(A);

for j=1:n

maxel=A(1,j);

for i=2:m

    if A(i,j)>maxel maxel=A(i,j); end

end;

B(j)=maxel;

end

endfunction

// Функция вычисления произведения положительных элементов

// в каждой строке матрицы

// Входные параметры: матрица A

// Выходной параметр: вектор РР, содержащий значения

// произведений положительных элементов каждой строки матрицы

function PP=Proiz(A)

[m, n] = size(A);

for i=1:m

   p=1;

   for j=1:n

      if A(i,j)>0

         p=p*A(i,j);

      end

   end

   PP(i)=p;

end

endfunction

 

// Функция преобразования исходной матрицы

// Входные параметры: исходная матрица A,

// число строк m и число столбцов n

// Выходной параметр: преобразованная матрица A

function [A]=zadacha1_5_3(A, m, n)

// Вызов функции поиска максимумов в каждом столбце

B=poisk_max(A);

A(m+1,:)=B;// Добавление последней строки

// Вызов функции вычисления произведений в каждой строке

PP=Proiz(A); 

A(:,n+1)=PP; // Добавление последнего столбца

еndfunction

 

// Конец сценария zadacha 1_5_3. sce =======================================

 

 

3) Графический интерфейс пользователя

Форма интерфейса пользователя приведена на следующем рисунке:

 

 

4) Программный код 2-го сценария выполнения задания, который содержит ввод исходных данных, вызов функции решения задачи и вывод результатов.

 

// Сценарий выполнения задания Pr1_5_3.sce // // Подключение сценария создания интерфейса exec('Pr1_5_3 _GUI.sce'); // Подключение сценария с функциями решения задачи exec('zadacha1_5_3.sce'); // // Функция vivodMatr создания строковой матрицы для вывода числовой матрицы // Входной параметр - выводимая матрица // Выходной параметр - матрица строк function vA=vivodMatr(A) [m, n] = size(A); vA=['']; // Создание пустой строковой матрицы //Изменение ee размера под размер выводимой матрицы vA=resize_matrix(vA,m,n);     for i =1:m   for j=1:n      vA(i)=vA(i)+sprintf("%7s", string(A(i,j)));   end end endfunction   // Функция YY содержит инструкции ввода исходной матрицы, // вывода ее в соответствующее текс. поле list1, // вызов функции решения задачи (преобразование матрицы) // из сценария zadacha1_5_3.sce и инструкции вывода результата // Выполнение функции YY инициируется нажатием кнопки "Выполнить" function YY() //Ввод матрицы через диалог окно A = evstr(x_dialog('МатрицаA =', ' ')); //Определение числа строк и столбцов матрицы А [m, n] = size(A); //Вызов функции создания строковой матрицы из исходной числовой vA=vivodMatr(A); // Вывод в текстовое поле list1 set(list1, 'string', vA); //Вызов функции решения задачи [A]=zadacha1_5_3(A,m,n); // вывод измененной матрицы в текстовое поле list2 vA=vivodMatr(A); set(list2, 'string', vA); endfunction   // Функция С очистки текстовых полей // Выполнение функции инициируется нажатием кнопки "Очистить" function C() set(list1, 'string', ""); set(list2, 'string', ""); endfunction // Конец сценария Pr1_5_3.sce =============================================

5) Программный код создания графического интерфейса

 

// Сценарий Pr1_5_3_ GUI .sce создания интерфейса пользователя // // Создание графического окна f=figure('position',[20,40,500,290],… 'figure_name','Програм-ние алгоритмов обработки матриц'); // // Создание listbox для вывода матриц list1 = uicontrol(f,'style','listbox','position', [140 20 150 160]); list2=uicontrol(f,'style','listbox','position', [310 20 150 160]); // //Создание текстового поля, для вывода исходной матрицы text1=uicontrol(f,'style','text','string','',… 'position',[140,180,150,20],'string',' Исходная матрица:'); // //Создание текстового поля,для вывода преобразованной матрицы text2=uicontrol(f,'style','text','string','',… 'position', [310,180,150,20],… 'string','Преобразованная матрица'); // Создание кнопки и установление ихсвойств bt1=uicontrol('style','pushbutton','string','Решить ',... 'position',[20,110,90,40],'CallBack','YY'); bt2=uicontrol('style','pushbutton','string','Очистить',... 'position',[20,20,90,40],'CallBack','C'); // Конец сценария Pr1_5_3_GUI.sce ===================================

 

-->// Сессия Командного окна для выполнения задания 3

-->// Практическое занятие 1.5 по теме:

-->// «Программирование алгоритмов обработки матриц»

-->// Вариант 0, задание 3

-->// Выполнил: Студент группы БИН1801 Иванов И.И.

-->

-->// Загрузка и выполнение сценария Pr1_5_3.sce

-->exec('Pr1_5_3.sce');

-->// Конец сессии ========================================================

 

 

6) Результат выполнения приложения

 

Содержание отчета

 

1) Титульный лист

2) Название и цель практического занятия

3) Общее задание

4) Графический интерфейс пользователя (по требованию преподавателя).

5) Сценарии, вначале которых должна быть введена информация в виде комментариев:

· имя и назначение сценария;

· номер задания и формулировка решаемой задачи и/или краткое перечисление действий, реализуемых в сценарии.

6) Протокол сессии Командного окна, вначале которого должна быть введена информация в виде комментариев:

· название практического занятия;

· вариант индивидуального задания и номер задания;

· ФИО студента, номер группы;

· краткое перечисление действий, выполняемых во время сессии.

 

1.5.4.5 Контрольные вопросы по теме

 

1) Что такое sci-функция и каковы её отличия от сценария?

2) Формат sci-функции.

3) Каким образом sci-функция загружается в оперативную память и запускается на выполнение?

4) Можно ли в одном сценарии описать несколько функций?

5) В какой последовательности должны быть расположены sci-функции в одном сценарии, если одна из них является главной, которая вызывает остальные функции?

6) Может ли sci-функция участвовать подобно библиотечным функциям в записи арифметического выражения?

7) Что такое формальные и фактические параметры функции?

8) Можно ли переменные, используемые в функции, созданной в сценарии, после его загрузки увидеть в окне Обозреватель переменных?

9) Может ли функция иметь несколько выходных параметров?

10) Может ли функция не иметь выходных параметров?

11) Может ли функция не иметь входных параметров?

12) Может ли функция не иметь ни входных, ни выходных параметров?

13) Может ли передаваться в качестве входного (или выходного) параметра матрица?

14) Может ли входным параметром функции являться число?

15) Формат оператора input.

16) Как с использованием оператора if … end реализовать стандартное, усеченное и вложенное разветвление?

17) Формат оператора множественного разветвления select.

18) Формат оператора регулярного цикла for … end, особенности задания значений переменной цикла.

19) Оператор итеративного цикла while … end и его структура.

20) Назначение операторов continue и brek .

21) Что представляет собой итеративный цикл?

22) В чем отличие организации регулярных и итеративных циклов?

 


 

Раздел 2. Решение вычислительных задач средствами Scilab

 


Дата: 2019-11-01, просмотров: 505.