Programavimas PASCAL'iu
Pamokų ciklas
Programos struktūra
Skaitymo ir spausdinimo sakiniai
Priskyrimo sakinys
Sąlyginis sakinys
Ciklas WHILE
Ciklas FOR
 Praktika
                 1užduotis »
 
 
 
 
 
 
 Teoriniai testai
Bus vėliau
 
Ciklas FOR

Ciklo sakinys nurodo, kad jame esantis sakinys turi būti atliekamas keletą kartų. Jei kartojimų skaičius žinomas iš anksto (iki kartojimų pradžios ), tai patogu vartoti ciklą FOR.

Ciklo FOR antraštė prasideda FOR. Po jo rašomas kintamojo vardas, šis kintamasis vadinamas ciklo kintamuoju. Toliau nurodoma, su kuriomis kintamojo reikšmėmis turi būti atliekamas ciklas - užrašoma pradinė ir galutinė ciklo kintamojo reikšmė.

FOR i:=cp TO cg DO

sakinys;

i- ciklo kintamasis, kuriam priskiriama ( ne prilyginama!) pirmoji reikšmė; be to ciklo kintamasis visada yra iš sveikųjų skaičių aibės skaičius, t.y. priklauso ? Integer tipui!

cp- pradinė c kintamojo reikšmė;

cg- galinė kintamojo reikšmė.

Jeigu cg<cp, tai ciklo sakinys visai nevykdomas ir ciklo kintamojo i reikšmė lieka neapibrėžta. Jei cp<cg, pirmą kartą vykdant ciklo sakinį, ciklo kintamasis i įgyja cp reikšmę ir atliekamas po žodelio DO esantis sakinys (dažnai tai būna sudėtinis sakinys). Jei cp<cg, tai ck reikšmė padidinama vienetu ir vėl atliekamas ciklo sakinys. Veiksmai kartojami tol, kol i=cg. Vadinasi, ciklas atliekamas cg-cp+1 kartų. Pvz.: raskite skaičių nuo 1 iki 10 sumą.

Jei tokioje For struktūroje pradinė reikšmė bus didesnė už galinę, ciklas FOR nebus vykdomas nei vieną kartą.

Pvz.:

For j:= 4 to –9 do…

Kadangi galinė reikšmė (-9)< už pradinę (4), tai ciklas for nevykdomas nei vieną kartą !

s:=0;
for i:= 1 to 10 do
s:=s+i;
write (s);

Jei taip užrašytume programoje write(s), tai kompiuteris atspausdins galutine visų reikšmių 1+2+3+4+5+6+7+ 8+9+10 rezultatą, t.y. 55.

Sakinys s:=s+i; bus įvykdytas 10 kartų, sakinys write (s) tik Vieną kartą !

Ciklo kintamojo reikšmė vienetu padidinama automatiškai. Ciklo viduje jos keisti nereikia ir negalima. Pradinė ir galutinė ciklo kintamojo reikšmė gali būti ne tik konstanta, bet ir kintamasis arba reiškinys (tipai turi būti vienodi).

Pvz.:

a:=5; b:= 100;
For i: = a+2 to b div 2 do… {Ciklas bus vykdomas nuo 7 iki 50.}

C:=trunc(sqrt(25));
For a:= -5 to c do… {ciklas bus vykdomas 11 kart ų, čia Trunc panaudojama tam, kad paversti c kintamojo reikšmę sveikąja}

Jei cikle FOR vartojami keli sakiniai, tai jie jungiami į vieną sudėtinį sakinį. Pvz.: raskite dviženklius skaičius, kurie 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);
end;


 
© 2007 Saulius Brazauskas. Jonavos Senamiesčio gimnazija.