Pascal I. 01. A program szerkez... 01. Gyakorló feladatok 02. Változók használata 02. Gyakorló feladatok 03. A FOR ciklus 03. Gyakorló feladatok 04. Egymásba ágyazo... 04. Gyakorló feladatok 05. Karakterláncok ... 05. Gyakorló feladatok 06. Az IF feltételvizsgálat 06. Gyakorló feladatok 07. A CASE elágazás 07. Gyakorló feladatok 08. A WHILE..DO ciklus 08. Gyakorló feladatok 09. A REPEAT..UNTIL ... 09. Gyakorló feladatok 10. Tömbök (ARRAY ... 10. Gyakorló feladatok 11. Műveletek tömbökkel 11. Gyakorló feladatok 12. Kétdimenziós töm... 12. Gyakorló feladatok 13. Műveletek kétdime... 13. Gyakorló feladatok
|
Programozás 1 (Pascal)
8
A WHILE..DO ciklus
8.1 A WHILE ... DO (elöltesztelős ciklus)
Ez
a ciklus a for ciklushoz hasonlóan megismétel néhány parancsot többször
egymás után. A különbség abban van, hogy míg a for ciklusnál a
ciklusváltozó kezdő- és végértéke határozta meg az ismétlések számát
(pl. for i:=1 to 8 ciklusnál az adott parancsot nyolcszor ismételte
meg), a while..do ciklusnál az ismétlések számát nem egy ciklusváltozó,
hanem egy feltétel határozza meg (pl. a<b). Amíg a feltétel igaz, addig
az adott parancsokat a while..do ciklus ismételni fogja. A ciklus formája:
while fetétel do parancs;
vagy ha több parancsot szeretnénk
elvégezni a cikluson belül, akkor hasonlóan mint a for ciklusnál és
az if feltételvizsgálatnál, használjuk a begin..end utasításokat:
while feltétel
do begin
parancs1;
parancs2;
...
parancsN;
end;
Magyarul:
amíg a feltétel igaz, ismételd a ciklusban levő parancsokat.
A feltétel itt is hasonlóan mint az if feltételvizsgálatnál
lehet egy vagy több kifejezésből is, melyeknél használhatjuk az AND (és), OR (vagy), NOT
(nem), XOR (kizáró vagy) műveleteket.
A ciklus a következő
képen működik:
a számítógép
megnézi, hogy a feltétel igaz-e.
-
Ha nem
igaz, akkor a ciklusban levő parancsokat nem hajtja végre egyszer sem,
hanem a program folytatódik a ciklus utáni utasításokkal.
-
Ha a feltétel igaz, végrehajtja
a ciklusban levő parancsokat. Ismét megvizsgálja a feltételt, amely ha
még mindig igaz, akkor ismét végrehajtja a ciklusban levő parancsokat.
Majd ismét megvizsgálja a feltételt, amely ha meg mindig igaz, akkor
ismét végrehajtja a parancsokat... Ha a feltétel már nem igaz, akkor a
parancsokat nem hajtja végre, hanem folytatódik a program futása a
ciklus utáni utasításokkal.
Feladat:
Készítsünk programot az n! kiszámítására a for ciklus
használata nélkül (a while ciklus segítségével).
Megoldás:
A programunk a következő képen néz ki:
program
Pelda23; var n,szorzat:integer; begin write('Add meg az N erteket: '); readln(n); szorzat:=1; while n>1 do begin
szorzat:=szorzat*n;
dec(n); { csokkenti n
erteket 1-gyel,
irhattuk volna helyette n:=n–1-et is }
end; writeln('N! = ',szorzat); end.
|