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)
     
9 A REPEAT..UNTIL ciklus
   
  • a REPEAT ... UNTIL ciklus

  • véletlen számok generálása

      
     9.1 A REPEAT ... UNTIL (hátultesztelős ciklus)

     A while..do ciklusnál a számítógép először megvizsgálta a feltételt és csak utána hajtotta végre a ciklusban levő parancsokat (amennyiben a feltétel igaz volt). Ha a feltétel mindjárt az első vizsgálatnál hamis volt, akkor a ciklusban levő utasításokat egyszer sem hajtotta végre.

     A repeat..until ciklusnál a számítógép először végrehajtja a ciklusban levő parancsokat (repeat..until közötti részt), majd utána vizsgálja meg a feltételt. Ha a feltétel igaz, kilép a ciklusból. Ha a feltétel hamis, megismétli ismét a ciklusban levő parancsokat majd ismét megvizsgálja a feltételt. Ennél a ciklusnál tehát egyszer mindenképpen lefutnak a ciklusban levő parancsok.

     A repeat..until ciklusból a számítógép a while..do ciklussal ellentétben akkor lép ki, ha a feltétel igaz (a while..do ciklusnál akkor lépett ki, ha a feltétel hamis volt).

     A ciklus szerkezete:

repeat
   
parancs1;
    parancs2;
    ...
    parancsN;
until feltétel;

     Magyarul: ismételd a ciklusban levő parancsokat, amíg a feltétel nem lesz igaz (tehát amíg a feltétel hamis).
   

     9.2 Véletlen számok generálása

     A random(n) funkció egy véletlen számot ad vissza a <0,n-1> intervallumból.
   
     Például:.
   
     a := random(7);            kigenerál egy egész számot, melynek értéke 0-tól 6-ig lehet
     a := 3 + random(10);     kigenerál egy egész számot, melynek értéke 3-tól 12-ig lehet

     A véletlenszám generátor a program indítása után mindig ugyanonnan kezdi a számok generálását. A programunk elején ezért mindig inicializáljuk a randomize; paranccsal (ezt a parancsot úgy foghatjuk fel, mintha megkeverné a számokat). A randomize; parancsot elég csak egyszer, a program legelején megadnunk, mielőtt használjuk a random() funkciót.

Feladat: A számítógép véletlenszerűen válasszon (gondoljon) egy számot 1-től 5-ig. Kérdezze meg a felhasználótól melyik ez a szám. A felhasználó addig találgathat, amíg nem találja el ezt a számot. A számítógép csak annyit írjon neki ki: "eltaláltad, ez az a szám", vagy "sajnos nem ez az a szám".

Megoldás: A programunk a következő képen néz ki:

program Pelda24;
var a,b:integer;
begin
  randomize;
{ megkeveri a szamokat }
  a:=random(5)+1;
{ kigeneral egy egesz szamot 1-tol 5-ig }
  repeat
    write('Melyik szamra gondoltam? ');
    readln(b);
    if a=b then writeln('Eltalaltad, ez az a szam!')
           else writeln('Sajnos nem ez az a szam.');
  until a=b;
  writeln('Nyomd meg az ENTER billentyut.');
  readln;
{ a szamitogep var az ENTER megnyomasara }
end.

      

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