Tihti tuleb algoritmi lahendamisel mingit algoritmi osa korduvalt läbida. Selliste korduste tegemiseks on programmeerimiskeeltes kasutusele võetud tsüklid.
Kasutatakse järgmisi tsükleid:
FOR-tsüklit kasutame juhul, kui korduste arv on eelnevalt teada.
Alljärgnev näidisprogramm trükib ekraanile 5 nummerdatud rida:
program tsykkel1;
var i: integer;
begin
for i:=1 to 5 do
writeln(i,'. rida');
readln;
end.
Juhul kui soovime FOR-tsüklis täita mitut lauset, tuleb need eraldada BEGIN ja END abil.
WHILE-tsükli puhul kontrollitakse enne tsükli täitmist, kas alustustingimus on tõene.
Alljärgnevas programmis on boolean tüüpi muutujale vastus antud väärtuseks false ning kasutajalt küsitakse Läti pealinna kuni tõese vastuse saamiseni. Seejärel omistatakse muutuja vastus väärtuseks true ning enam WHILE-tsüklit ei täideta.
program tsykkel2;
var pealinn: string;
vastus: boolean;
begin
vastus:=false;
while vastus=false do
begin
writeln('Mis on Läti pealinn? ');
readln(pealinn);
if pealinn='Riia' then vastus:=true;
end;
readln;
end.
REPEAT-tsükli puhul kontrollitakse tsükli täitmise järel, kas lõpetustingimus on tõene. Kui lõpetustingimus on tõene väljutakse tsüklist ja ei täideta seda rohkem.
REPEAT-tsüklit kasutatakse näiteks juhul, kui küsitakse, kas kasutaja soovib programmi korrata.
repeat
programmi tegevus...
write('Kas soovid korrata (j/e)? ');
readln(vastus);
until (vastus='e') or (vastus='E');
REPEAT-tsükli puhul pole ka mitme lause korral vaja kasutada käske BEGIN ja END.
Ülesanne 1. Koostage programm, mis annab kasutajale lahendada 10 juhuslikku korrutusülesannet. Kui 10 ülesannet on lahendatud teatab programm, mitu õiget vastust oli.
Ülesanne 2. Täiendage ruutvõrrandi lahendamise programmi nii, et lõpus küsitaks kasutajalt, kas ta soovib veel ruutvõrrandeid lahendada.
Ülesanne 3. Koostage programm kolmnurga pindala arvutamiseks Heroni valemi järgi.