Лекція 3 . Символьні розрахунки в matlab . Пакет mupad . ...
DESCRIPTION
Лекція 3 . Символьні розрахунки в Matlab . Пакет MuPAD . Елементи програмування. Умовний оператор if. Повна форма. Скорочена форма. if умова then команди else команди end_if. if умова then команди end_if. Приклад використання. f:=x->if xTRANSCRIPT
Лекція 3.Символьні
розрахунки в Matlab.
Пакет MuPAD. Елементи
програмування
Умовний оператор if
if умова thenкоманди
elseкоманди
end_if
f:=x->if x<0 then x^2*exp(x) else sin(2*PI*x)^4*exp(-x^2) end_if
if умова thenкоманди
end_if
Повна форма Скорочена форма
Приклад використання
Умовний оператор if (продовження)
Логічні оператори
Оператор Пояснення
and логічне "і": A and B
or логічне "або": A or B
xor логічне "виключне або": A xor B
not логічне заперечення: not A
==> імплікація: A==>B це (not A) or B<=> тотожність: A<=>B це
(A ==> B) and (B ==> A)
Оператори порівняння
Оператор Пояснення
= рівність: A=B
<> нерівність: A<>B
> "більше": A>B
< "меньше": A<B
>= "більше або рівне": A>=B
<= "меньше або рівне": A=<B
Вкладені умовні оператори if
if умова then команди else if умова then команди else if умова then команди else команди end_if end_ifend_if
Загальна форма
if умова then команди elif умова then команди elif умова then команди else командиend_if
Альтернативна форма
Замість конструкції else if ... end_if використовуємо інструкцію elseif
Умовний оператор - приклад
f:=x->if x<0 or x>4 then cos(2*PI*x)^2 else if x<1 then 1-x^2 else if x<3 then sin(2*PI*x) else x-3 end_if end_if end_if
Повна форма
Скорочена форма
f2:=x->if x<0 or x>4 then cos(2*PI*x)^2 elif x<1 then 1-x^2 elif x<3 then sin(2*PI*x) else x-3 end_if
𝑓 (𝑥 )={c os (2𝜋 𝑥)2 при𝑥<0та𝑥>41−𝑥2 при0≤𝑥<1
sin (2𝜋 𝑥) при1≤ 𝑥<34−𝑥 при3≤ 𝑥≤ 4
Оператор вибору
case виразof значення_1 doкоманди_1of значення_2 doкоманди_2...otherwiseкомандиend_case
Загальна форма
Виконуються всі команді від місця, де є співпадіння значень, і до кінця оператора (інструкція end_case). Для завершення case-блоку використовують інструкцію break. Блок otherwise не є обов'язковим
Оператор вибору
GetColor:=x-> case x of 1 do print(Unquoted,"1 - означает КРАСНЫЙ"); break of 2 do print(Unquoted,"2 - означает ЖЕЛТЫЙ"); break of 3 do print(Unquoted,"3 - означает ЗЕЛЕНЫЙ"); break otherwise print(NoNL,x); print(Unquoted," - не знаю такого цвета") end_case
Приклад використання
Послідовність команд розділяється крапкою з комою (тобто ;). Ключове слово NoNL є абревіатурою від No New Line.
Оператор вибору
TestNumber:=x-> case x of 1 do of 2 do of 3 do of 5 do of 8 do print(Unquoted,"Это число Фибоначчи!"); break of 6 do print(Unquoted,"Совершенное число: 6=1+2+3 и 6=1*2*3"); break otherwise print(Unquoted,"Ничего интересного!") end_case
Приклад використання
Оператор циклу for
for змінна from значення_1 to значення_2 step значення_3 doкомандиend_for
Загальна форма
Крок инкременту step вказувати не обов'язково. В цьому випадку індексна змінна збільшується на одиницю. Щоб змінна зменшувалась, замість to використовуємо інструкцію downto.
for змінна in множина doкомандиend_for
Оператор циклу for
Fib:=n->(a:=1;b:=1;for k from 3 to n dob:=a+b;a:=b-a;end_for;b)
Приклад використання
Оператори циклу while та repeat
while умова doкомандиend_while
Загальна форма
Різниця в тому, коли перевіряється умова. Для while - умова продовження виконання, для repeat - умова завершення виконання
repeatкомандиuntil умова end_repeat
Оператори циклу while та repeat
a:=1:b:=1:i:=2:print(NoNL,a);print(NoNL," ");print(NoNL,b);while i<20 dob:=a+b:a:=b-a:print(NoNL," ");print(NoNL,b);i:=i+1:end_while:
Приклади використання
a:=1:b:=1:i:=2:print(NoNL,a);print(NoNL," ");print(NoNL,b);repeatb:=a+b:a:=b-a:print(NoNL," ");print(NoNL,b);i:=i+1:until i>=20 end_repeat:
Створення процедуриЗагальна схема
Якщо процедура повертає результат, використовують інструкцію return(). Значення, що повертається процедурою, вказується аргументом інструкції
ім'я_процедури:=proc(аргументи)local локальні_змінні;beginкомандиend_proc
Створення процедуриПриклад застосування
FibNums:=proc(n)local i,a,b;begina:=1:b:=1:for i from 3 to n dob:=a+b:a:=b-a:end_for:return(b);end_proc:
Створення процедуриПриклад застосування
FNums:=proc(n) begin if n=1 or n=2 then return(1): else return(FNums(n-1)+FNums(n-2)): end_if: end_proc
Зауваження
В якості завершальної інструкції замість ключових слів end_for, end_while, end_repeat, end_if, end_case та end_proc у відповідних місцях можна використовувати ключове слово end