Sikl, kaytarish operatorlari, sikl sarlavxasi va tanasi
FOR, REPEAT, WHILE kaytarilish operatorlari ixar xil tipli sikllarni yaratishda ishlatiladi.
FOR kaytarilish operatori sikl sarlavxasi va tanasidan iborat. U ikkita formatda bulishi mumkin:
FOR < sikl parametri> := TO DO ;
FOR < sikl parametri > := DOWNTO DO ;
S1 va S2 - ifodalar, sikl parametrining bosh va oxirgi kiymatini aniklaydi. FOR ... DO - sikl sarlavxasi, - sikl tanasi. Sikl tanasi sodda yoki tarkibiy operatordan iborat bulishi mumkin. FOR operatori siklning parametrlari bosh va oxirgi kiymatlari bajarilib bulguncha sikl tanasini ishini boshqaradi.
Misol:
FOR I:= 1 TO 100 DO Read(M[I]); { massiv elementlarini ukish}
FOR I:= 100 DOWNTO 1 DO Write(M[I]); { massiv elementlarini chiqarish }
Sikl parametri, uning bosh va oxirgi kiymati berilganlarning bitta tipiga karashli bulishi kerak. Bunda xoxlagan skalyar tip katnashishi mumkin, xakiykiydan tashkari.
REPEAT kaytarish operatori REPEAT sarlavxadan, tanadan va UNTIL shartdan iborat.
Yozilishi:
REPEAT
...
UNTIL ;
REPEAT va UNTIL suzlari orasidagi operatorlar, sikl tanasi xisoblanadi. Eng avvalo sikl tanasi bajariladi, keyngi navbatda sikldan chikish sharti tekshiriladi. Agar bulev ifodaning natijasi False ga teng bulsa, u xolda sikl tanasi yana bir bor aktivlashadi, agar natija True ga teng bulsa - sikldan chikiladi. Sikl operatorlaridan xech bulmaganda bittasi shart kiymatiga ta’sir ko’rsatishi kerak, aks xolda sikl tuxtamaydi.
Kuyidagi fragmentda Y va N tugmachalari bosishni kutishda REPEAT operatori ishlatilishi ko’rsatilgan. Boshqa tugmachalar bosilishi ta’sir kilmaydi:
USES Crt;
VAR
YN: char;
BEGIN
...
REPEAT
YN:= ReadKey
UNTIL UpCase(YN) IN ['Y','N'];
...
END.
WHILE operatori xuddi REPEAT operatoriga uxshaydi, lekin sikl tanasining bajarilish sharti operator boshida tekshiriladi.
Formati:
WHILE DO
< sikl tanasi>;
Shart - bulev ifoda, sikl tanasi - sodda yoki tarkibiy operator. Sikl tanasi xar bir bajarilishidan oldin shart ifodasining kiymati xisoblanadi. Agar natija True ga teng bulsa, sikl tanasi bajariladi va yana shart ifodasi xisoblanadi. Agar natija False ga teng bulsa, sikldan chikiladi va WHILE dan keyingi birinchi operatorga utiladi.
WHILE ishlash tartibini kurish uchun DemoWhile dasturi misol bula oladi, bu programma 10 tasodifiy kiritilgan butun sonlar yigindisini xisoblaydi.
PROGRAM DemoWhile;
CONST
Limit = 10; { kiritiladigan sonlar mikdori chegarasi }
VAR
Count, Item, Sum: integer;
BEGIN
Count:= 0;
Sum:= 0;
WHILE (Count < Limit) DO BEGIN { sikl bajarilish sharti}
Count:= Count+1;
Write('Butun ', Count, '-chi sonni kiriting: ');
Readln(Item); Sum:= Sum+Item;
END;
Writeln('Kiritilgan sonlar yigindisi teng ', Sum);
END.
Do'stlaringiz bilan baham: |