МП_5
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ
Лабораторная работа №1.5
по теме «Средства программирования в Scilab»
Выполнила
Студентка группы БСТ1904
Пантелеева К.А.
Вариант №14
Проверил
доц. Шакин В.Н.
Москва, 2021
«Средства программирования в Scilab» Вариант 14
1 Общее задание № 1 «Программирование алгоритмов итеративных циклических структур»
1) Изучить материал учебника [1] (п. 1.5).
2) Выбрать вариант задания из таблицы 5-1 по заданию преподавателя.
3) Провести формализацию поставленной задачи.
4) Написать программный код сценария-функции с параметрами без
использования глобальных переменных, предусмотрев страховку от
возможного «зацикливания».
5) Предусмотреть вывод промежуточных результатов на каждой
итерации и итоговых результатов.
6) Написать программный код сценариев выполнения задания,
содержащий ввод исходных данных, вызов функции п.4 и вывод
результатов.
7) Выполнить созданное приложение и получить решение.
8) Обосновать правильность полученных результатов на заранее
разработанных тестах.
9) Представить отчет преподавателю.
2 Индивидуальное задание 1
3 Результат выполнения 1-го задания
--> //Сессия командного окна для выполнения задания 1:
--> // Практическое занятие 1.5 по теме
--> // «Средства программирования в Scilab»
--> // Вариант 14, задание 1
--> // Выполнила: Студентка группы БСТ1904 Пантелеева К.А.
--> // Вызов сценария Pr1_5_1.sce
--> exec('Pr1_5_2.sce',-1)
--> s=Pos(0.00001);
--> disp(s);
1.4142135
--> a=sqrt(2);
--> disp(a);
1.4142136
--> //Конец сессии 1-го задания===========================================
4 Содержимое сценариев 1-го задания, снабженные комментариями
// Сценарий Pr1_5_1.sce задания 1
// Вычисление суммы членов ряда с использованием рекурентной формулы
function s=Pos(eps)
a=0.5; n=1; s=a;
b=1/(2+a);
while abs(b-a) > eps | n < 5
s=s+b; a=b; b=1/(2+a);
n=n+1;
end
endfunction
//Конец сценария Pr1_5_1.sce=============================================
5 Общее задание № 2 «Программирование алгоритмов регулярных циклических структур»
1) Изучить материал учебника [1] (п. 1.5).
2) Выбрать индивидуальное задание из таблицы 5-1.
3) В соответствии с индивидуальным заданием создать сценарий с
функцией решения задачи. Эта функция может быть разбита на
отдельные вспомогательные функции для реализации базовых
алгоритмов, например, вычисления конечных сумм, разветвлений, поиска
минимума и максимума в последовательности данных и т.п.
4) Предусмотреть вывод промежуточных результатов на каждой
итерации и итоговых результатов.
5) Написать программный код сценариев выполнения задания,
содержащий ввод исходных данных, вызов функции п.4 и вывод
результатов.
6) Выполнить созданное приложение и получить решение.
7) Оформить отчет по выполненной работе.
6 Индивидуальное задание 2
7 Результат выполнения 2-го задания
--> //Сессия командного окна для выполнения задания 2:
--> // Практическое занятие 1.5 по теме
--> // «Средства программирования в Scilab»
--> // Вариант 14, задание 2
--> // Выполнила: Студентка группы БСТ1904 Пантелеева К.А.
--> // Вызов сценария Pr1_5_2.sce
--> exec('Pr1_5_2.sce',-1)
column 1 to 4
0.8833888 0.6525135 0.3076091 0.9329616
column 5 to 8
0.2146008 0.312642 0.3616361 0.2922267
column 9 to 12
0.5664249 0.4826472 0.3321719 0.5935095
column 13 to 16
0.5015342 0.4368588 0.2693125 0.6325745
column 17 to 18
0.4051954 0.9184708
"Вектор"
0.8833888
0.9329616
0.5664249
0.5935095
0.5015342
0.9184708
"Массив X"
--> //Конец сессии 2-го задания=============================================
8 Содержимое сценариев 2-го задания, снабженные комментариями
// Сценарий Pr1_5_2.sce задания 2
//Из вектора составить массив из максимальных 3-х элементов идущих подряд
function [mas,x,a]=max3(a)
mas=rand(1,18,1.4,1.67);
i=1;
k=1;
a=mas(i);
for i=i:3:18
if mas(i)<mas(i+1) then
a=mas(i+1);
else
if mas(i)<mas(i+2) then
a=mas(i+2);
else
a=mas(i);
end
end
x(k)=a;
k=k+1;
a=0;
end
endfunction
a=0; //реализация задания
[mas,x,a]=max3(a);//вызов функции
disp(mas,"Вектор");//вывод исходного вектора
disp(x,"Массив X");//вывод созданного массива
//Конец сценария Pr1_5_2.sce================================================
9 Общее задание № 3 «Программирование алгоритмов обработки матриц алгоритмическими средствами языка Scilab (без использования матричных операций)»
1) Изучить материал учебника [1] (п. 1.5).
2) Выбрать индивидуальное задание из таблицы 5-3.
3) В соответствии с индивидуальным заданием создать сценарий с
необходимыми функциями для реализации базовых алгоритмов,
например, вычисления конечных сумм, разветвлений, поиска минимума и
максимума в последовательности данных и т.п. и с функцией решения
задачи
4) Предусмотреть вывод промежуточных результатов на каждой
итерации и итоговых результатов.
41
5) Написать программный код сценариев выполнения задания,
содержащий ввод исходных данных, вызов функции п.4 и вывод
результатов.
6) Выполнить созданное приложение и получить решение.
7) Оформить отчет по выполненной работе.
10 Индивидуальное задание 3
11 Результат выполнения 3-го задания
--> //Сессия командного окна для выполнения задания 3:
--> // Практическое занятие 1.5 по теме
--> // «Средства программирования в Scilab»
--> // Вариант 14, задание 3
--> // Выполнила: Студентка группы БСТ1904 Пантелеева К.А.
--> // Вызов сценария Pr1_5_3.sce
--> exec('Pr1_5_3.sce')
Введите искомое число m =2
Введите число n =3
10. 7. 6.
5. -3. -8.
"Матрица А:"
10. 7. 6.
5. 0. 0.
"Матрица В:"
--> //Конец сессии 3-го задания=============================================
12 Содержимое сценариев 3-го задания, снабженные комментариями
// Сценарий Pr1_5_3.sce задания 3
// Ввод размера матрицы А
m=input("Введите искомое число m =");
n=input("Введите число n =");
// Создание матрицы в заданном диапазоне
mas = grand(m,n,"uin",-10,10);
// Вывод матрицы А на экран
disp(mas,"Матрица А:");
k=0;r=0;
while k<m
l=r;
for i=1:n
if (mas(k+1,i)>0) then r=r+1;
end
end
r=max(l,r);
k=k+1;
end;
if (r==n) then mas(mas<0)=0; disp(mas,"Матрица В");
else disp(mas(mas>0), "Матрица В");
end;
//Конец сценария Pr1_5_3.sce===============================================