LeMill
Edit, tips for use and more...

Tsüklid

by Hans Põldoja, Inga Petuhhov — last modified 2008-06-18 18:10
group: Informaatikavõrgustik

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ükkel

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ükkel

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ükkel

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.

Ülesanded

Ü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.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Teaching and learning stories
Programmeerimine Pascalis by Hans 28.11.2007
MultimediaMaterial