Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Прикладные пакеты моделирования (6 лаб)

.pdf
Скачиваний:
184
Добавлен:
30.01.2019
Размер:
246 Кб
Скачать
☆

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение

высшего профессионального образования «Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича»

_____________________________________________________________________________

Кафедра радиосистем и обработки сигналов Дисциплина «Прикладные пакеты моделирования»

Лабораторная работа №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