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.