Лабораторные работы по ИТ за 2 семестр (ФЭЛ) / 9283_Зикратова_ИТ_ЛР№1
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра РТЭ
отчёт
по лабораторной работе
по дисциплине «Информационные технологии»
Тема: «Среда конечного пользователя Матлаб»
Студентка гр.9283 |
|
Зикратова А. А. |
Преподаватель |
|
Кочунов К. В. |
Санкт-Петербург
2020
Цель работы:
освоение базовых операторов и отладка программ в среде конечного пользователя Матлаб.
Работа включает упражнения и задачи по разделам:
• Переменные и вектора
• Условный оператор if
• Оператор цикла while
• Оператор цикла for
• Средства отладки программ
• Задачи по отладке программ Задание
• Выполнить упражнения
• Отладить программы
• Оформить отчет
1 задание:
В командном окне:
− Ввести численные переменные а=2,3 в=-34,7 x=1 y=2, вычислить z=(x+y)-a/b
− Ввести символьные переменные с=a
− Ввести строковую переменную h= мама мыла раму
− Полученный листинг скопировать в отчет
Результаты:
a=2.3
a =
2.3000
>> b=-34.7
b =
-34.7000
>> x=1
x =
1
>> y=2
y =
2
>> z=(x+y)-a/b
z =
3.0663
>> c=a
c =
2.3000
>> h="мама мыла раму"
h =
"мама мыла раму"
2 задание:
В командном окне:
− Ввести формулы 25,7-14,6 затем 2 x ans затем x=ans/2
− Полученный листинг скопировать в отчет
Результаты:
>> 25.7-14.6
ans =
11.1000
>> 2*ans
ans =
22.2000
>> x=ans/2
x =
11.1000
3 задание:
В командном окне:
− Ввести численные переменные ABC=1, abc=2, Abc=3, aBc=4, вычислить x= ABC+abc+Abc+aBc, вычислить у= ABC*abc*Abc*aBc
− Полученный листинг скопировать в отчет
Результаты:
>> ABC=1
ABC =
1
>> abc=2
abc =
2
>> Abc=3
Abc =
3
>> aBc=4
aBc =
4
>> x=ABC+abc+Abc+aBc
x =
10
>> y=ABC*abc*Abc*aBc
y =
24
4 задание:
В командном окне:
− Ввести вектор Х с начальным значением Xn=-3,5, шагом dx=1,5 и конечным значением Xk=4,5
− Вычислить массив значений Y= sin(X/2)
− Ввести вектор A с начальным значением 0, шагом 1 и конечным значением 5
− Полученный листинг скопировать в отчет
Результаты:
>> X=-3.5:1.5:4.5
X =
-3.5000 -2.0000 -0.5000 1.0000 2.5000 4.0000
>> Y=sin(X./2)
Y =
-0.9840 -0.8415 -0.2474 0.4794 0.9490 0.9093
>> A=0:5
A =
0 1 2 3 4 5
5 задание:
В командном окне:
− Ввести вектор-строку V из пяти последовательных элементов 1, 2, 3, 2,1
− Ввести вектора-строки W из четырех последовательных элементов 1,1: 2,3; 0,1; 5,88 − Ввести вектор-столбец X из трех последовательных элементов 1, 2, 3;
− Вычислить формулу W1+2W3 − Полученный листинг скопировать в отчет
Результаты:
>> v=[1 2 3 2 1]
v =
1 2 3 2 1
>> W=[1.1 2.3 -0.1 5.88]
W =
1.1000 2.3000 -0.1000 5.8800
>> X=[1 2 3]
X =
1 2 3
>> W(1)+2*W(3)
ans =
0.9000
6 задание:
В командном окне:
− Ввести матрицу А, состоящую из трех строк по три элемента в каждой: строка 1: 1 2 3; строка 2: 4 5 6; строка 3: 7 8 9
− Вычислить формулу А1,2 в степени А2,2 деленное на А3,3
− Полученный листинг скопировать в отчет
Результаты:
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> (A(1,2)^A(2,2))/A(3,3)
ans =
3.5556
7 задание:
В окне Редактора (Editor):
− Применить оператор if-end для программы, которая в зависимости от заданного значения переменной X присваивает переменной signX:
- значение ‘плюс’, если значение переменной X больше нуля
- значение ‘минус’, если значение переменной X меньше нуля
- значение ‘ноль’, если значение переменной X равно нулю
− Записать программу в файл PR1-7_FIO_GR.m
− Определить переменную signX для трех значений X: 5, -3, 0
− Вывести значения Х и signX, используя оператор disp
− Текст программы и полученные листинги скопировать в отчет
Текст программы:
>> x=input('Enter x:');
y=sign(x);
if x>0
disp('y>0')
end
if x<0
disp('y<0')
end
disp(y)
disp(x)
Результаты:
Enter x:5
y>0
1
5
Enter x:-3
y<0
-1
-3
Enter x:0
0
0
8 задание:
В окне Редактора (Editor):
− Применить оператор if-else-end для программы, которая в зависимости от заданного значения переменной X присваивает переменной signX:
- значение ‘плюс’, если значение переменной X больше нуля
- значение ‘минус’, если значение переменной X меньше нуля
- значение ‘ноль’, если значение переменной X равно нулю − Записать программу в файл PR1-8_FIO_GR.m
− Определить переменную signX для трех значений X: 5, -3, 0
− Вывести значения Х и signX, используя оператор disp
− Текст программы и полученные листинги скопировать в отчет
Текст программы:
>> x=input('Enter x:');
y=sign(x);
if x>0
disp('y>0')
else
if x<0
disp('y<0')
end
end
disp(y)
disp(x)
Результаты:
Enter x:5
y>0
1
5
Enter x:-3
y<0
-1
-3
Enter x:0
0
0
9 задание:
В окне Редактора (Editor):
− Применить оператор if-else-end для программы, которая в зависимости от заданного значения переменной X присваивает переменной signX:
- значение ‘плюс’, если значение переменной X больше нуля
- значение ‘минус’, если значение переменной X меньше нуля
- значение ‘ноль’, если значение переменной X равно нулю − Записать программу в файл PR1-9_FIO_GR.m
− Определить переменную signX для трех значений X: 5, -3, 0
− Вывести значения Х и signX, используя оператор disp
− Текст программы и полученные листинги скопировать в отчет
Текст программы:
>> x=input('Enter x:');
y=sign(x);
if x>0
disp('y>0')
elseif x<0
disp('y<0')
end
disp(y)
disp(x)
Результаты:
Enter x:5
y>0
1
5
Enter x:-3
y<0
-1
-3
Enter x:0
0
0
10 задание:
В окне Редактора (Editor):
− Применить оператор if-else-end с логическим оператором ‘&’ (И) для программы, которая проверяет попадание переменной Х в диапазон от 0 до 2. При попадании переменной valueX присваивается значение ‘TRUE’, в противном случае – ‘FALSE’
− Записать программу в файл PR1-10_FIO_GR.m
− Определить переменную valueX для двух значений X: 5, 1
− Вывести значения Х и valueX, используя оператор disp
− Текст программы и полученные листинги скопировать в отчет
Текст программы:
>> X=input('Enter x:');
if (X>0) && (X<2)
disp('true')
else
disp('false')
end
disp(X)
Результаты:
Enter x:5
false
5
Enter x:1
true
1
11 задание:
В окне Редактора (Editor):
− Применить оператор if-else-end с логическим оператором ‘|’ (ИЛИ) для программы, которая проверяет выход переменной Х за границы диапазона от 0 до 2. При выходе переменной valueX присваивается значение ‘TRUE’, в противном случае – ‘FALSE’
− Записать программу в файл PR1-11_FIO_GR.m
− Определить переменную valueX для двух значений X: 5, 1
− Вывести значения Х и valueX, используя оператор disp − Текст программы и полученные листинги скопировать в отчет
Текст программы:
>> X=input('Enter X:');
if (X<0) || (X>2)
disp('true')
else
disp('false')
end
disp(X)
Результаты:
Enter X:5
true
5
Enter X:1
false
1
12 задание:
В окне Редактора (Editor):
− Применить оператор цикла while для подсчета суммы ряда. Суммирование выполнять до тех пор пока счетчик i не превышает 20, либо значение суммы S меньше 20.
− При выходе переменной valueX присваивается значение ‘TRUE’, в противном случае – ‘FALSE’
− Записать программу в файл PR1-12_FIO_GR.m
− Вывести значения i и S, используя оператор disp
− Текст программы и полученные листинги скопировать в отчет
Текст программы:
i=1;
S=0;
while S<20 || i<=20
S=S+i;
i=i+1;
end
disp(i)
disp(S)
Результаты:
21
210
13 задание:
В окне Редактора (Editor):
− Применить оператор цикла for для нахождения наибольшего элемента вектора из четырех элементов: 3, 6, 5, 3.
− Записать программу в файл PR1-13_FIO_GR.m
− Вывести номер и значение наибольшего элемента вектора, используя оператор disp − Текст программы и полученные листинги скопировать в отчет
>> T=[3 6 5 3];
m=T(1);
for i=1:length(T)
if m<T(i)
m=T(i);
end
end
[val,idx]=max(T);
disp(m)
disp(idx)
6
2
14 задание:
В окне Редактора (Editor):
− Отладить программу. После исправленных команд вставить комментарии с исходными текстами команд.
− Записать программу в файл PR1-14_FIO_GR.m
− Текст отлаженной программы скопировать в отчет
array_1D=1:2:15;
array_1d=[1 2 3 4;5 6 7 8;9 10 11 12]; % 2array_1d=[1 2 3 4;5 6 7 8;9 10 11 12]
x=-pi: exp(1)-2: 2*pi; % x=-pi:1,e-2:2*pi;
y1= x.^2;
y2=x;
for ii=1:1.2:5
if ii>2
disp(ii)
elseif ii == 3 % elseif ii = 3
j=ii-1; % j=ii-1
end
end
NN=1;
while NN<100 % while Nn<100
NN=NN+1;
end
for phi_0=0:0.1:pi %for phi_0=0:0,1:pi
x = -2*pi: 2*exp(1)-2: 2*pi;
u = sin(x-phi_0);
end
Вывод:
В ходе лабораторной работы были проделаны задания с целью ознакомления с основными элементами программы Matlab.