Pascal I.      Pascal II.      Delphi       Linkek     
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
   
  • 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.

   

(C) 2004-2013, PaedDr. Végh Ladislav, Komárno, Szlovákia