Збекистон миллий университети



Download 1,98 Mb.
bet28/56
Sana23.06.2022
Hajmi1,98 Mb.
#694633
TuriПрограмма
1   ...   24   25   26   27   28   29   30   31   ...   56
Bog'liq
inf va dast-oquv-qollanma

§ 3.9. Case оператори (Танлаш оператори).

Одатда шартли операторлар текшириладиган шартлар 2га, 3га бўлганда фойдаланилади. Агар шартлар сони кўп бўлса, махсус Case операторидан фойдаланиш мақсадга мувофиқ. Унинг умумий кўриниши қуйидагича:


Case <ифода> оf
<ўзгармас 1>:<оператор 1>;
<ўзгармас 2>:<оператор 2>;
……………………………….

{else <оператор 0>}


end
қуйидаги принцпда ишлайди. Агар асосий ифоданинг қиймати, нишонлардан (метка) бирининг қийматига тенг бўлса, уша нишонни оператор бажаради ва бошқарув сон операторидан кейинги операторга узатилади. Агар ифоданинг қиймати бирорта ҳам нишонга мос келмаса else дан кейинги оператор ишлайди.

  1. мисол

Case sоn оf


0: writeln (‘nоl’);
1,3,7,9: writeln (‘tоq sоn’);
2,4,6,8: writeln (‘juft sоn’);
else write (‘sоn emas’)
end
Case операторида ифоданинг қиймати real туридан бошқа ҳамма стандард турига тегишли бўлиши мумкин Case операторидаги нишонларнинг типи ифоданинг типи билан бир хил бўлиши шарт. Қавс { } ичидаги операторининг Case операторида бўлиши шарт эмас.Чунки алгоритм тўғри бўлса, одатда бу операторга зарурат йўқ.

2-мисол Case S оf


1: ‘+’, ‘–‘, ‘*’, ‘/’ ; S : = 1;
2: ‘А’,’В’; S: =2;
3: ‘ .’ ; S: =3;
end
Бу ерда S char туридаги ўзгарувчи.
Мустақил бажариш учун топшириқ.
1. Хафтанинг бирор кун номерига мос келувчи кун номерини ўзбек, инглиз тилларида чоп этадиган программа тузилсин.


§ 3.10. Цикл операторлари.

Биз такрорланувчи алгоритмларнинг шарти олдин берилган, кейин берилган ва параметрга боғлиқ турларини кўриб ўтган эдик. Паскал тилида такрорланувчи жараёнларни программалаш учун махсус 3та цикл операторлари мавжуд :



  • Параметрли цикл оператори (For)

  • Шарти кейин берилган цикл оператори(Repeat)

  • Шарти олдин берилган цикл оператори (while)



Параметрли цикл оператори. Бу оператор бошқача параметрли такрорлаш оператори дейилади. Унинг ишлатиш учун такрорлаш жараёни қуйидаги қоидаларга эга бўлиши керак: жараёнининг такрорланиш сони унинг бажарилишидан олдин маълум бўлиш керак; такрорлаш жараёнини скаляр турдаги ўзгарувчи бошқаради. Бу ўзгарувчи берилган бошланғич қийматдан берилган охирги қийматгача кетма-кет қийматларни қабул қилади. Кўпинча қуйидаги такрорлаш оператори ишлатилади:
for V: =E1 to E2 do S;
бу ерда for (учун) , to (ўсиб боради) ва do (бажариш) - хизматчи сўзлар, V - скаляр турдаги ўзгарувчи (ҳақиқийдан ташқари) - такрорлаш параметр, E1 ва E2 - V турдаги ифодалар, S - оператор - такрорлаш танаси.
Бу операторни ишлаш тамойилини тушинтирамиз: V такрорлаш параметрига E1 бошланғич қийматидан бошлаб, E2 охирги қийматигача кетма-кет қийматлар берилади ва ҳар биттаси учун S оператори бажарилади. E1 ва E2 қийматлари такрорлаш жараёни бошланишидан олдин фақат бир марта ҳисобланади, S оператори V қийматини ўзгартириши мумкин  эмас. Агар E2Шундай қилиб, арифметик такрорлаш операторини қуйидаги операторлар кетма-кетлиги ёрдамида ёзиш мумкин (vn ва vk - V турдаги ёрдамчи ўзгарувчилар):
vn: = E1;
vk: =E2;
if vn<=vk then
begin
V: =vn; S; V: =succ(V); S; V: =succ(V); S; . . . ; V: =vk; S
end;
Паскалда такрорлаш тугаганидан кейин V-нинг қиймати ноаниқ ҳисобланади. Арифметик такрорлаш операторини ишлатиб, берилган n учун y=1+2+3+. . . +n қуйидагча ечиш мумкин:
y: =0; for i: =1 to n do y: =y+i;
Баъзида такрорлаш параметрини камайиб бориш тартибида ўзгариши керак бўлади. Бундай ҳолларда Паскалда такрорлаш операторининг қуйидаги шакли мавжуд:
for V:E1 downto E2 do S;
бу ерда downto (камайиб бориш) - хизматчи сўз. Бу кўринишидаги такрорлаш оператори қуйидаги операторлар кетма-кетлигига эквивалент:
vn: =E1; vk: =E2;
if vn>=vk then
begin
V: =vn; S; V: =pred(V); S; V: =pred(V); S;. . . ;V: =vk; S
end;
Юқорида келтирилган масалани бу оператор ёрдамида қуйидагича ечиш мумкин:
y: =0; for i: =n downto 1 do y: =y+i;



  1. Мисол: Prоgram Sum;

Var i: integer;
S: real;
Begin read(n);
S:0;
Fоr i:1 tо n dо s:s1/sqr(х);
Write(s)
end

2. мисол: ухn , х>0, n>0, у:қ1 ,


Fоr i:1 tо n dо уу*х


3. мисол. Лотин алфавитидаги кичик ҳарфлар чоп этилсин.


Program chart;
Var c: char;
Begin
Fоr c:a tо z dо write (с)
end



  1. мисол

Prоgram F1;
var n, i: integer,
b: bооlean;
c: char;
begin read(n);
Fоr i:1 tо n dо write (i);
Fоr i:10 dоwntо 10 dо write(i);
Fоr c:z dоwnto а dо write(с);
Fоr b: False tо true dо write(b)
end


Шарти олдин ва шарти кейин берилган такрорлаш операторлари. Параметрли такрорлаш оператори олдиндан такрорлаш сони маълум бўлгандагина ишлатилиши мумкин. Масалан, итерация жараёнларида талабга жавоб берувчи ечимга неча қадамда эришилиши олдиндан номаълум бўлганлиги сабабли, унинг программасида параметрли такрорлаш операторидан фойдалана олмаймиз. Бунинг учун шарти кейин берилган такрорлаш оператори ишлатиш мумкин. У қуйидагича ёзилади:
repeat S1; S2; . . . Sn until B;
бу ерда - repeat(такрорлаш) ва until(гача)-хизматчи сўзлар, Si - ихтиёрий операторлар, B - мантиқий ифода. Бу оператор бажарилганда repeat ва until орасидаги операторлар кетма-кетлиги камида бир марта бажарилади. Бу жараён B мантиқий ифода true қиймат қабул қилганда тугайди. Шарти кейин берилган учлик операторининг ишлаш тамойили қуйидагича тасвирлаш мумкин.

Repeat
< оператор 1>;<оператор 2>;...;<оператор N>


u ntil <мантиқий ифода>;
чиқиш
False True

5-мисол. Шарти кейин берилган такрорлаш операторини кўлланг. Ньютон усули ёрдамида берилган а сонидан Е-аниқликда илдиз чиқариш .ах масаласини қарайлик. Қуйидаги рекуррент формулани ҳосил қилиш мумкин:





Programm kv_ildiz;
Var
a, eps, x0, x1, е : real;
i : integer;
Begin
a:=2;
x0: =1.2;
eps: =0.001;
Repeat
X1: = (x0+a/x0);
E:қabs(x1-x0);
X0: =x1;
Until eWrite(x1);
End.

Бу программа 2 дан Е0.001 аниқликда квадрат илдиз чиқаришга мўлжалланган.


Кўриниб турибдики, шарти кейин берилган такрорлаш оператори арифметик такрорлаш операторидан анча умумийроқ. Аммо, шарти кейин берилган такрорлаш операторида такрорлаш танаси бир марта бажарилаяпти. Баъзи ҳолларда шартга боғлиқ равишда такрорлаш танасидаги операторлар бир марта ҳам бажарилмаслиги мумкин. Бундай ҳолларда шарти олдин берилган такрорлаш операторини ишлатиш керак.
Шунга ўхшаган масалалар учун шарти олдин берилган такрорлаш оператиридан фойдаланамиз:
While B dо S;
Бу ерда while (хозирча) dо (бажарилсин)-хизматчи сўзлар В-мантиқий ифода, S оператор. S оператори ҳар гал бажарилишидан олдин В нинг қиймати ҳисобланади, агар у рост бўлса, S оператори бажарилади, акс ҳолда такрорлаш тамом бўлади. Агар В нинг қиймати биринчи мартадан ёлгон бўлса, такрорлаш умуман бажарилмайди. Шарти олдин берилган циклик операторининг ишлаш принцпи қуйидагича тасвирлаш мумкин.


True




While <мантиқий ифода> do <оператор>;
Шарти олдин берилган такрорлаш оператор энг умумий деб ҳисобланади, чунки бу оператор ёрдамида параметрли ва шарти кейин берилган такрорлаш операторларини ёзиш мумкин.

6-мисол. Қуйидаги йиғиндини ҳисоблаш масаласини кўрайлик.



Program sum2;
Var
s, x : real;
i, p : integer;
Begin read(x, n);
s:1;
i:1;
p:1;
While i<n do
Begin p:p*xi;
s:sp;
i:i1;
End;
Write(s);
End.

Мустақил бажариш учун топшириқлар.



  1. 6-мисолни шарти кейин ва олдин берилган циклик оператор ёрдамида Е ни аниқлайдиган программа тузинг.

  2. У=0.256*Sin(х) функциянинг қийматлари жадвали х=1..10 учун 1 қадам билан шарт олдин берилган циклли оператор ёрдамида ҳисобланг.




Download 1,98 Mb.

Do'stlaringiz bilan baham:
1   ...   24   25   26   27   28   29   30   31   ...   56




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish