Прикладные пакеты моделирования (6 лаб)
.pdfФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования «Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
_____________________________________________________________________________
Кафедра радиосистем и обработки сигналов Дисциплина «Прикладные пакеты моделирования»
Лабораторная работа №6
Режим программирования: Организация разветвлений и циклов
Выполнили:
Проверил: Степанов А. Б.
Санкт-Петербург
1. Организация разветвлений с одним условием.
function y1=y1(a,b) x=[-4:0,1:4];
if and(a~=0,b~=0) y1=a*sin(b*x);
plot(x,y1),grid,title('y1=a*sin(b*x)'); else
y1=(a+2)*x+b; plot(x,y1),grid,title('y1=(a+2)*x+b'); end
Command Window:
>> s=y1(4,1) |
|
|
|
|
|
|
|
||
s = |
|
|
|
|
|
|
|
|
|
3.0272 |
-0.5645 |
-3.6372 |
-3.3659 |
|
0 |
3.3659 |
3.6372 |
||
0.5645 |
-3.0272 |
|
|
|
|
|
|
|
|
>> c=y1(0,0) |
|
|
|
|
|
|
|
|
|
c = |
|
|
|
|
|
|
|
|
|
-8 |
-6 |
-4 |
-2 |
0 |
2 |
4 |
|
6 |
|
Пояснение:
•какой оператор использован для организации разветвления Разветвление по условию выполняется с помощью оператора if
•что проверяется при организации разветвления При организации разветвления проверяется условие
•какие параметры function-файла y1 являются входными и выходными y1 – выходной параметр, a и b – входные
2
2. Организация разветвлений с несколькими условиями.
function y2=y2(a,b) x=[-4:0,1:4];
if and(a~=0,b~=0) y2=a*sin(b*x);
plot(x,y2),grid,title('y2=a*sin(b*x)'); elseif and(a>-2,b>0)
y2=(a+2)*x+b;
plot(x,y2), grid, title('y2=(a+2)*x+b'); else
y2=(2-a)*x.^2+b; plot(x,y2),grid,title('y2=(2-a)*x^2+b');
end
Command Window:
>>z=y2(-3,0) |
|
|
|
|
|
|
|
|
z = |
|
|
|
|
|
|
|
|
80 |
45 |
20 |
5 |
0 |
5 |
20 |
45 |
80 |
>> c=y2(1,4) |
|
|
|
|
|
|
|
c = |
|
|
|
|
|
|
|
|
0.2879 |
0.5366 |
-0.9894 |
0.7568 |
0 |
-0.7568 |
0.9894 |
- |
|
0.5366 |
-0.2879 |
|
|
|
|
|
|
Пояснение:
•какой оператор использован для организации разветвления Оператора if elseif else использован для организации разветвления
3.Организация цикла с заранее известным числом повторений.
function F=Fibonacci (i) F1=0;
F2=1;
disp(strcat(num2str(F1,F2))) for i=3:10
F=F1+F2;
F1=F2;F2=F;
disp(strcat(num2str(F)))
end
3
Command Window:
>> F=Fibonacci 0 1 2 3 5 8 13 21 34
F =
34
Пояснение:
•какой оператор использован для организации цикла оператор for использован для организации цикла
•какие параметры function-файла Fibonacci являются входными и выходными F-выходной параметр, i-входной
4.Организация цикла с заранее неизвестным числом повторений.
function [s,s1,s2] = GeomProg(q) n=0;s0=0;
q=input('q=') e=input('e=') while e>1e-4
s=s0+(q).^n; e=abs(s-s0); s0=s;
n=n+1;
end s1=1/(1-q)
s2=abs((s)-abs(s1))
disp(strcat(['s= ', num2str(s),'s1= ', num2str(s1),'s2= ', num2str(s2)]))
Command Window:
>> GeomProg q=0.3
q =
0.3000
e=100 e =
100
s1 =
1.4286
s2 =
2.8119e-005
s= 1.4285s1= 1.4286s2= 2.8119e-005 ans =
1.4285
Пояснение:
•какой оператор использован для организации цикла оператор while использован для организации цикла
4
•какие параметры function-файла GeomProgression являются входными и выходными
s,s1,s2-выходные параметры, q-входной
5.Организация разветвлений в зависимости от значения выражения.
script clc clear
disp('0-Fibonacci') disp('1-GeomProg') disp('2-y1') disp('3-y2')
variant=input('variant= '); switch (variant)
case 0
disp('Исполняется файл Fibonacci') y=Fibonacci;
case 1
disp('Исполняется файл GeomProg') y=GeomProg;
case 2
disp('Исполняется файл y1') y=y1;
case 3
disp('Исполняется файл y2') y=y2;
otherwise
disp('Неверный ввод')
end
Command Window:
0-Fibonacci
1-GeomProg
2-y1
3-y2 variant = 5
Неверный ввод
Пояснение:
•какой оператор использован для организации разветвления оператор switch использован для организации разветвления
•что проверяется при организации разветвления при организации разветвления проверяется значение выражения
•к какому типу данных может принадлежать переменная variant переменная variant может принадлежать к типу данных int
5