Ciklo sakinys for

Žinomo kartojimų skaičiaus ciklas for

Dažnai susiduriame su veiksmais, kuriuos reikia atlikti daug kartų. Kartojimo veiksmams užrašyti programavimo kalba vartojama speciali programavimo konstrukcija – ciklas. Ciklai būna kelių rūšių. Paskalyje ciklai yra trijų rūšių – while, for ir repeat. Vienas iš jų yra žinomo kartojimų skaičiaus ciklas – for. Ciklo for sintaksė:

for ck := pr to gr do sakinys;

ck – ciklo kintamasis. Jis turi būti diskrečiojo tipo (sveikojo arba simbolinio).

pr – ciklo kintamojo pradinė reikšmė – konstanta, kintamasis arba reiškinys. JJi turi būti to paties tipo konstanta, kaip ir ciklo kintamasis.

gr – galutinė ciklo kintamojo reikšmė – konstanta, kintamasis arba reiškinys. Ji turi būti to paties tipo konstanta, kaip ciklo kintamasis bei pradinė ciklo kintamojo reikšmė.

Jeigu gr < pr, tai ciklo sakinys visai nevykdomas ir ck reikšmė lieka neapibrėžta. Jei pr  gr, tai ck reikšmė padidinama vienetu ir vėl atliekamas po do esantis sakinys. Veiksmai kartojami tol, kol ck = gr. Vadinasi, ciklas atliekamas gr – pr + 1 kkartų.

Pvz.: raskite skaičių nuo 1 iki 10 sumą.

begin

s := 0;

for i := 1 to 10 do

s := s + i;

write (s);

end.

Ciklo viduje ciklo kintamojo (ck) reikšmės keisti negalima. Jei cikle for vvartojami keli sakiniai, tai jie jungiami į vieną sudėtinį begin . end; sakinį. Pvz.: raskite dviženklius skaičius, kurie dalijasi iš savo skaitmenų sumos:

begin

writeln (‘šie skaičiai dalijasi iš savo skaitmenų sumos: ‘);

for i := 10 to 99 do

begin

s1 := i div 10;

s2 := i mod 10;

p := s1 + s2;

if i mod p = 0 then write (i:4);

end;

readln;

end.

Pvz.: Programos fragmentas skaičiuoja nlaip = nk:

begin

readln (n);

readln (k);

nlaip := 1;

for i := 1 to k do

nlaip:=nlaip * n;

write (nlaip);

end.

Ciklo kintamojo reikšmė automatiškai didinama vienetu. Jei ciklo sakinyje for vietoje žodžio to rašome downto, tai ciklo kintamojo reikšmė yra cikliškai mažinama vienetu:

for ck := gr downto pr do sakinys;

Jei gr < pr, tai ciklas neatliekamas nei karto.