6. Szerkezeti utasítások

Ciklust és elágazást szerkezeti utasításokkal hozhatunk létre. Ezen kívül a Pascal-ban létezik az összetett utasítás fogalma: összetett utasítás a BEGIN és END közé tett több utasítás. Erre akkor van szükség, ha azt szeretnénk, hogy egy több utasításból álló blokkot a Pascal egy utasításként kezeljen.

Elágazás:

Ha a logikai kifejezés igaz, az elsõ, ha hamis, a második utasítás lesz végrehajtva. Az elágazás egyetlen utasításnak számít, tehát csak a legvégére kerül pontosvesszõ! Az ELSE-ágat nem kötelezõ megadni. Ha az egyes ágakban több utasítást is végre szeretnénk hajtani, azokat Begin és End közé kell tenni, és így egyetlen összetett utasítást csinálni belõlük. Példa:

PROGRAM Atlagsebesseg;
VAR s,t:real;
BEGIN
 Write('Add meg az utat (km-ben):'); Readln(s);
 Write('Add meg az idõt (h-ban): '); Readln(t);
 If t=0 Then Writeln('Rossz adatok!')
        Else Begin
           Writeln;
           Writeln('Az átlagsebesség: ',s/t:6:2,' km/h');
        End ;
{az elágazást lezáró pontosvesszõ}
END.

A másik fajta elágazás egy diszkrét változó bizonyos értékeitõl függ.

Program Mitviszakishajo;
Var c:char;
BEGIN
 Write('Írj be egy betût: '); Readln(c);
 Case c of
    'a': Writeln('Almát!');
    'b': Writeln('Banánt!);
    'c': Begin
       Writeln('Cérnát,');
       Writeln('cicát!');
    End;
    Else Writeln('Erre nem tudok mit lépni.');
 End;
END.

Ciklusok:

Ciklusból háromfajta van: elöltesztelõs, hátultesztelõs és számlálós.

A diszkrét típusú változó sorban felveszi a két kifejezés közti összes értéket, és mindegyik esetben elvégzi az utasítást. Ha visszafelé akarunk számolni, TO helyett DOWNTO-t használunk. Ha kifejezés1>kifejezés2 (TO esetén), a ciklusmag egyszer sem fut le.

Var i:integer;
BEGIN
 For i:=1 to 10 do Writeln(i,' négyzete=',sqr(i));
END.

Megvizsgálja a logikai kifejezést, ha igaz, végrehajtja az utasítást és kezdi elölrõl. Ha a logikai kifejezés hamis, a ciklusmag egyszer sem fut le. A For-ciklushoz hasonlóan itt is csak egy utasítás lehet a ciklusmag, több utasítás esetén a Begin és End segítségével összetett utasítást kell csinálnunk.

Var i:integer;
BEGIN
 i:=0;
 While i<10 Do Begin
    i:=i+2;
    Writeln(i);
 End;
END.

A program kiírja a 2,4,6,8,10 számokat.

Elvégzi az utasításokat. Megvizsgálja a logikai kifejezést, ha hamis, visszaugrik a REPEAT-hez. Tehát a logikai kifejezés a ciklusból való kilépés feltétele. (Until=mígnem). Ha a kifejezés kezdetben igaz, a ciklusmag akkor is lefut egyszer.

REPEAT
   Readln(a);
   If a<>0 Then Writeln(1/a);
UNTIL a=0;

Következõ fejezet
Elõzõ fejezet
Tartalomjegyzék
Honlap