Sharti oldin va sharti keyin berilgan takrorlash operatorlari. Parametrli takrorlash operatori oldindan takrorlash soni ma’lum bo‘lgandagina ishlatilishi mumkin. Masalan, iteratsiya jarayonlarida talabga javob beruvchi yechimga necha qadamda erishilishi oldindan noma’lum bo‘lganligi sababli, uning programmasida parametrli takrorlash operatoridan foydalana olmaymiz. Buning uchun sharti keyin berilgan takrorlash operatori ishlatish mumkin. U quyidagicha yoziladi:
repeat S1; S2; . . . Sn until B;
bu yerda - repeat(takrorlash) va until(gacha)-xizmatchi so‘zlar, Si - ixtiyoriy operatorlar, B - mantiqiy ifoda. Bu operator bajarilganda repeat va until orasidagi operatorlar ketma-ketligi kamida bir marta bajariladi. Bu jarayon B mantiqiy ifoda true qiymat qabul qilganda tugaydi. Sharti keyin berilgan uchlik operatorining ishlash tamoyili quyidagicha tasvirlash mumkin.
Repeat
; ;...;
until ;
chiqish
True
False
4-misol: Sharti keyin berilgan takrorlash operatorini qo‘llang. Nyuton usuli yordamida berilgan a sonidan -aniqlikda ildiz chiqarish masalasini haraylik. Quyidagi rekurrent formulani hosil qilish mumkin:
Programm kv_ildiz;
Var
a, eps, x0, x1, e : 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.
Bu programma 2 dan 0.001 aniqlikda kvadrat ildiz chiqarishga mo‘ljallangan.
Ko‘rinib turibdiki, sharti keyin berilgan takrorlash operatori arifmetik takrorlash operatoridan ancha umumiyroq. Ammo, sharti keyin berilgan takrorlash operatorida takrorlash tanasi bir marta bajarilayapti. Ba’zi hollarda shartga bog‘liq ravishda takrorlash tanasidagi operatorlar bir marta ham bajarilmasligi mumkin. Bunday hollarda sharti oldin berilgan takrorlash operatorini ishlatish kerak.
Shunga o‘xshagan masalalar uchun sharti oldin berilgan takrorlash operatiridan foydalanamiz:
While B do S;
Bu yerda while (hozircha) do (bajarilsin)-xizmatchi so‘zlar V-mantiqiy ifoda, S operator. S operatori har gal bajarilishidan oldin V ning qiymati hisoblanadi, agar u rost bo‘lsa, S operatori bajariladi, aks holda takrorlash tamom bo‘ladi. Agar V ning qiymati birinchi martadan yolgon bo‘lsa, takrorlash umuman bajarilmaydi. Sharti oldin berilgan siklik operatorining ishlash prinsipi quyidagicha tasvirlash mumkin.
True
While do ;
Sharti oldin berilgan takrorlash operator eng umumiy deb hisoblanadi, chunki bu operator yordamida parametrli va sharti keyin berilgan takrorlash operatorlarini yozish mumkin.
5-misol: Quyidagi yig‘indini hisoblash masalasini ko‘raylik.
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*xi;
s:sp;
i:i1;
End;
Write(s);
End.
Mustaqil bajarish uchun topshiriqlar:
6-misolni sharti keyin va oldin berilgan siklik operator yordamida E ni aniqlaydigan programma tuzing.
funksiyaning qiymatlari jadvali x=1..10 uchun 1 qadam bilan shart oldin berilgan siklli operator yordamida hisoblang.
Do'stlaringiz bilan baham: |