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

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

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

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

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

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

_____________________________________________________________________________

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

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