Ciklai Spausdinti
( 14 Votes )

Parašė Vidmantas Šarkys   

Šiame skyriuje nagrinėsime vieną naudingiausių ir dažniausiai vartojamų programos dalių - ciklą. Neretai tenka susidurti su situacija, kai tą patį veiksmą reikia kartoti ne vieną, o daugiau kartų. Tokiu atveju labai pagelbsti ciklai, kurie norimą sakinį ar bloką gali kartoti n kartų. Trumpai susipažinkime su ciklų FOR, WHILE ir REPEAT struktūra.

1. FOR

...
For i  := 1 to 5 do
(atliekamas sakinys);
...

Kiekviename cikle turi būti vadinamasis ciklo kintamasis. Nuo jo reikšmės priklauso, kiek ilgai ciklas vyks. Pavyzdyje šią funkciją atlieka kintamasis "i" ( gali būti bet koks sveikojo tipo kintamasis). Ciklo sąlygą galime išversti šitaip : kol "i" reikšmė kinta nuo 1 iki 5, atlikti programos sakinį. Ciklo aprašyme priskiriame pradinę "i" reikšmę ( 1 ). Taip pat nurodome, iki kokios reikšmės ciklas atliks veiksmą ( 5 ). Vietoj šios reikšmės galime naudoti ir kintamąjį, kas labai praverčia kuriant tam tikras programas. Ciklas FOR yra vienintelis iš FPS ciklų, kuriame ciklo kintamojo reikšmė kinta automatiškai po kiekvieno atlikto veiksmo, t.y. kaskart, kai ciklas įvykdo sakinį, kintamojo reikšmė padidėja vienetu. Kai "i" įgyja reikšmę 5, sakinys atliekamas paskutinį kartą.

2. WHILE

...
i := 0;
While i < 10 do
i := i + 1;
...

Iš karto pastebime, kad šiame ciklo sakinyje kitaip naudojamas ciklo kintamasis. Jam nereikia priskirti pradinės jo reikšmės, tiesiog nurodome, kada baigsis ciklas. Kitaip nei cikle FOR , šiame cikle kintamasis "i" automatiškai nedidėja po sakininio atlikimo, tad jį padidinti turime patys, ką ir atliekame sakiniu "i := i + 1". Toks didinimas yra būtinas -  kitu atveju ciklas taptų begalinis.

3. REPEAT

...
Repeat i := i + 1 until i = 10;
...

Šis ciklo tipas turi daug panašumų su minėtaisiais, skiriasi tik jo naudojimo pobūdis. Kaip matome, norimą atlikti sakinį parašome iš pradžių, po to nurodome, kokiai sąlygai esant baigsime ciklo vykdymą.

Apžvelgėme visų ciklų struktūrą. Tiesa, visi pavyzdžiai yra ypač elementarūs ir parinkti tik tam, kad galėtumėme juos lengvai perprasti. Daugiau apie kiekvieną iš ciklų skaitykite kituose straipsniuose, kur susipažinsime, kaip juos naudoti programose.