лабы 3 вар matlab / ПИОА_лаб(3)
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра «Корабельных систем управления»
отчет
по лабораторной работе №3
по дисциплине «Программирование и основы алгоритмизации»
Тема: ОПЕРАТОР ПЕРЕКЛЮЧЕНИЯ И
ФУНКЦИЙ ВВОДА-ВЫВОДА.
Студент гр. 9494 |
|
Лобазев Н.А. |
Преподаватель |
|
Модин Н.В. |
Санкт-Петербург
2020
1. Задание на лабораторную работу.
Цель работы.
Освоение оператора переключения языка программирования MATLAB, реализация различных способов ввода данных с клавиатуры и вывода на экран.
Условие:
1. Изменить программу второй лабораторной, добавив
ввод данных с клавиатуры и вывод значений функции на экран.
2. Составить блок-схемы алгоритмов эмулятора календаря и обработки
строки символов (см. таблица 8) в соответствии с вариантом задания.
3. Написать и отладить программы в соответствии с алгоритмами.
Исходные данные:
Функция
Календарь и ввод строки
2. Блок-схемы алгоритмов решения задачи
Алгоритм функции двух переменных
Алгоритм календаря
Алгоритм выбора строки
3. Тексты программ
lab3.m
T= input('input T:');
if T<0
T=-T;
end
k=0;
x=zeros(1,21);
for t=-2*T:0.4:2*T
if t<-T
x(1,k+1)=0;
elseif t<=0
x(1,k+1)=3+3*t;
elseif t<=T
x(1,k+1)=3-3*t;
else
x(1,k+1)=0;
end
k=k+1;
if t<0
fprintf('f(%2.2f %2.2f ) = %-4.3f\n', t, T, x(1,k))
else
fprintf('f( %2.2f %2.2f ) = %-4.3f\n', t, T, x(1,k))
end
end
p=-1;
while p==-1
D=input('Enter a date(DD.MM.): ', 's');
D = sscanf(D, '%f');
DD = fix(D);
MM = fix((D-DD).*100+0.5);
switch MM
case 1
p = 0;
case 2
p = 31;
case 3
p = 58;
case 4
p = 58;
case 5
p = 120;
case 6
p = 151;
case 7
p = 181;
case 8
p = 212;
case 9
p = 243;
case 10
p = 273;
case 11
p = 304;
case 12
p = 334;
otherwise
s=['wrong type date'];
disp(s)
end
switch MM
case [1, 3, 5, 7, 8, 10, 12]
if or(DD<1, DD>31)
p=-1;
s=['wrong type date'];
disp(s)
end
case 2
if or(DD<1, DD>28)
p=-1;
s=['wrong type date'];
disp(s)
end
otherwise
if or(DD<1, DD>30)
p=-1;
s=['wrong type date'];
disp(s)
end
end
end
p = 2+p+DD;
W = mod(p, 7);
switch W
case 0
s=['This is Monday'];
case 1
s=['This is Tuesday'];
case 2
s=['This is Wednesday'];
case 3
s=['This is Thursday'];
case 4
s=['This is Friday'];
case 5
s=['This is Saturday'];
case 6
s=['This is Sunday'];
end
disp(s);
str = input('Enter your string: ','s');
A = regexpi (str,'[a, e, i, o, u, y]');
s = ['Quantity of vowels in the string: ', num2str(length(A))];
disp(s);
4. Результаты выполнения программы
Листинг:
>> lab3
input T:2
f(-4.00 2.00 ) = 0.000
f(-3.60 2.00 ) = 0.000
f(-3.20 2.00 ) = 0.000
f(-2.80 2.00 ) = 0.000
f(-2.40 2.00 ) = 0.000
f(-2.00 2.00 ) = -3.000
f(-1.60 2.00 ) = -1.800
f(-1.20 2.00 ) = -0.600
f(-0.80 2.00 ) = 0.600
f(-0.40 2.00 ) = 1.800
f( 0.00 2.00 ) = 3.000
f( 0.40 2.00 ) = 1.800
f( 0.80 2.00 ) = 0.600
f( 1.20 2.00 ) = -0.600
f( 1.60 2.00 ) = -1.800
f( 2.00 2.00 ) = -3.000
f( 2.40 2.00 ) = 0.000
f( 2.80 2.00 ) = 0.000
f( 3.20 2.00 ) = 0.000
f( 3.60 2.00 ) = 0.000
f( 4.00 2.00 ) = 0.000
Enter a date(DD.MM.): 04.12
This is Friday
Enter your string: qwertyuiopasdfghjklzxcvbnm
Quantity of vowels in the string: 6
Конец листинга.
5. Выводы.
В ходе работы мы освоили работу с простейшими математическими функциями и средствами графики в среде MATLAB, а именно с функцией построения графика, функциями управления окном графиков, основными функциями и функциями работы полиномами. По работе составлен отчёт в соответствии с предъявленными требованиями.