While operatori quyidagi umumiy ko‘rinishga ega:
WhileDo;
bu yerda While (ing. toki) va Do Paskalning xizmatchi so‘zlari; – oddiy yoki murakkab mantiqiy ifoda; – takrorlanishi lozim bo`lgan operator yoki operatorlar ketma-ketligi. Agar takrorlanish tanasida operatorlar ketma-ketligi yozilsa, ular beginbilan boshlanib, end; bilan yakunlanadi.
Mazkur takrorlash operatori quyidagicha ishlaydi:
Avval shart tekshiriladi. Agar uning qiymati rost bo‘lsa, takrorlash tanasini tashkil etuvchi operatorlar ishlaydi, va yana shart teksiriladi. Bu jarayon shart yolg‘on qiymat qabul qilgunga qadar davom etadi.
1–misol. Ikkita sonning eng katta umumiy bo‘luvchisini (EKUB) topuvchi dastur tuzing.
Yechish. EKUB topishning eng qulay usuli – Evklid algoritmi. Bu algoritm sizga avvalgi bobdan tanish. Dasturi quyidagicha:
Program EKUB;
Var a, b : Integer;
Begin Write(‘Birinchi sonni kiriting: ‘); ReadLn(a);
Write(‘Ikkinchi sonni kiriting: ‘); ReadLn(b);
While a<>b Do If a>b Then a:=a–b Else b:=b–a; {a=b bo‘lganda takrorlash tugaydi}
WriteLn(‘EKUB= ‘, a);
End. Repeat operatori ham shart bo‘yicha takrorlashni amalga oshiradi. Uning umumiy ko‘rinishi quyidagicha:
Repeat Until bu yerda Repeat (ing. takrorlash) va Until (ing. gacha) Paskalning xizmatchi so‘zlari bo‘lib, Repeat – takrorlash boshi, Until – takrorlash oxirini bildiradi; – oddiy yoki murakkab mantiqiy ifoda. Takrorlanish tanasi shart rost qiymat qabul qilgungacha bajarilaveradi.
2–misol. S = 1,1+1,5+1,9+2,3+…+45,5 yig’indini hisoblash dasturini tuzing.
Yechish. Misolni tahlil qilib qo’shiluvchilar 0,4 ga farq qilishini aniqlaymiz. Parametrli takrorlash operatorida parametr qiymati haqiqiy bo’la olmaydi. Bu holda shart bo’yicha takrorlash operatorlaridan foydalanish qulay. Quyidagi ikkala yechimni taqqoslab ko’ring.