200 likes | 447 Views
Лекція 3 . Символьні розрахунки в Matlab . Пакет MuPAD . Елементи програмування. Умовний оператор if. Повна форма. Скорочена форма. if умова then команди else команди end_if. if умова then команди end_if. Приклад використання. f:=x->if x<0 then x^2 * exp (x)
E N D
Лекція 3. Символьні розрахунки в Matlab. ПакетMuPAD. Елементи програмування
Умовний операторif Повна форма Скорочена форма if умоваthen команди else команди end_if if умоваthen команди end_if Приклад використання f:=x->if x<0 then x^2*exp(x) else sin(2*PI*x)^4*exp(-x^2) end_if
Вкладеніумовні операториif Загальна форма if умоваthenкоманди else if умоваthenкоманди else if умоваthen команди else команди end_if end_if end_if Замість конструкції else if ... end_ifвикористовуємо інструкцію elseif Альтернативна форма if умоваthen команди elifумоваthen команди elifумоваthen команди else команди end_if
Умовний оператор - приклад Повна форма f:=x->if x<0 or x>4 thencos(2*PI*x)^2 else if x<1 then1-x^2 else if x<3 thensin(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 elifx<1 then 1-x^2 elifx<3 then sin(2*PI*x) else x-3 end_if
Операторвибору Загальна форма case вираз of значення_1do команди_1 of значення_2do команди_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 є абревіатурою від NoNewLine.
Операторвибору Приклад використання 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значення_1toзначення_2stepзначення_3do команди end_for forзміннаinмножинаdo команди end_for Крок инкрементуstepвказувати не обов'язково. В цьому випадку індексна змінна збільшується на одиницю. Щоб змінна зменшувалась, замість toвикористовуємо інструкцію downto.
Операторциклу for Приклад використання Fib:=n->( a:=1; b:=1; for k from 3 to n do b:=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 do b:=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); repeat b:=a+b: a:=b-a: print(NoNL," "); print(NoNL,b); i:=i+1: until i>=20 end_repeat:
Створення процедури Загальна схема ім'я_процедури:=proc(аргументи) localлокальні_змінні; begin команди end_proc Якщо процедура повертає результат, використовують інструкцію return(). Значення, що повертається процедурою, вказується аргументом інструкції
Створення процедури Приклад застосування FibNums:=proc(n) local i,a,b; begin a:=1: b:=1: for i from 3 to n do b:=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