Maple тизимининг ыисыача характеристикаси


if (a > b) then a else b end if


Download 1.35 Mb.
bet19/34
Sana18.02.2023
Hajmi1.35 Mb.
#1213620
1   ...   15   16   17   18   19   20   21   22   ...   34
Bog'liq
Maple 72

if (a > b) then a else b end if;

> 5*(Pi + `if`(a > b,a,b));

> x := `if`(a < b,NULL,b);

> if FAIL then 3 else 5 end if;

> a1:=(a)->`if`(a>0,a,-2*a);

> a1(7);

> a1(-19.6);

Ушбу конструкцияда шартли оператор
`if`(Шарт, 1-ифода, 2-ифода)
кўринишида ишлатилган. Агар шарт бажарилса 1-ифода, бажарилмаса 2-ифода бажарилади. Бундай шакл компакт бўлганлиги сабабли кўпчилик ҳолларда ишлатилади, масалан ундан қуйида уч хил турдаги сигналларни моделлашда фойдаланилган:
>restart:plot(`if`(sin(x)/x>0,sin(x)/x,-sin(x)/x),x=-10..10, color=blue);

> restart:plot(`if`(sin(x)>=0,sin(x),-sin(x)),x=-8..8,color=red);



> plot(`if`(sin(x)>=0,1,-1),x=-12..12,color=red);



5.4. For - while цикллари


Кўпчилик ҳолларда берилган ифодани маълум шарт бажарилгунча циклик равишда кўп марта бажариш зарур бўлади. Maple 7 тизимида цикл оператори қуйидаги кўринишда берилади:


| for | |from | |to | |by | (while | do Statement sequence> od;
Бу ерда name — цикл ўзгарувчисининг номи, exprl, ехрr2 и ехрrЗ — ўзгарувчининг бошланғич, сўнгги ва ўзгариш қадамини берувчи ифодалар, name, ехрr4 — цикл (do ва od сўзлари орасида жойлашган объектлар тўплами) бажарилишининг шартини ўрнатувчи ифода. Агар by блок бўлмаса ўзгарувчи +1га тенг бўлган қадам билан ўзгаради:
> for i from 6 by 2 to 10 do print(i) od;



Қуйидаги мисолда берилган кетма-кетлик навбат билан кўпайтириб чиқилган:
> t := 1;
for z in 1, x, y, q^2, 3 do
t := t*z;
end do;






Цикл қадами манфий бўлиши ҳам мумкин:


> for i from 9 to 1 by -2 do print(i) od;





Ўзгарувчининг ўзгариш чегараларини арифметик ифода кўринишида ҳам бериш мумкин:
> for i from 7/(2+5) to 2+3 do print(i) od:





Циклни қўшимча while <ехрr4> блоки ёрдамида тўхтатиш мумкин:
> for i from 1 to 10 by 2 while i<6 do print(i) od;



Maple-дастурлаш тилида циклнинг қуйидаги кўриниши ҳам мавжуд:


|for | |in | |whi1e | do statement sequence> od;
Бу ерда exprl ўзгарувчи оладиган қийматларнинг рўйхатини беради:
> for i in [1.2,5,-1.7,.12] do print(i) od;




> for i in [1.2,5,-1.7,.12] while i>0 do print(i) od;


Цикл циклнинг ичига киритилган бўлиши ҳам мумкин. Қуйидаги мисолда М массив асосида бирлик матрица ҳосил қилинган:



Бирлик матрицани identiеty функцияси ёрдамида ҳам ҳосил қилиш мумкин:
> M:=Matrix(3,3,shape=identity);

ёки
> M:=Matrix(3,3,shape=identity);

> M:=array(1..3,1..3,identity);

> M=evalm(M);

Қуйидаги соддалаштирилган шаклдаги while циклидан ҳам фойдаланиш мумкин:


while expr do statseq od:
Бу ерда ехрr шарт бажарилса statseq ифода ҳам бажарилади:
> n:=1:while n<9 do n:=2*n od;




Айрим ҳолларда цикл ўзгарувчисининг айрим қийматларини ўтказиб юбориш зарур бўлади. Бунинг учун next (кейинги) операторидан фойдаланилади. Қуйида келтирилган мисолда цикл ўзгарувчисининг 2 ва ундан катта қийматлари ўтказиб юборилади:
> for i in [1,2,3,-2,1.5,4] do if i>=2 then next else print(i) fi od;



Яна бир оператор – break – дастур фрагментининг (ёки циклнинг) бажарилишини тўхтатади:
> for i in [1,2,3,-2,1.5,4] do if i=3 then break else print(i) fi od;


Бу ҳолда цикл ўзгарувчиси i=3 қийматни олганда циклнинг ишлаши бутунлай тўхтайди, шунинг учун кейинги қийматлар (3,-2,1.5,4) экранга чиқарилмайди.
Бундан ташқари quit, done ёки stop операторлари ҳам дастурнинг (хусусан циклнинг ҳам) бажарилишини тўхтатишни таoминлайдилар, лекин улар бажарилганда жорий ойна ҳам ёпилади.

Download 1.35 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   ...   34




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling