Pascal programozás alap és haladó szinten!

Mindenkinek akit kicsit is érdekel ,de tudni akar! AZ övék ez a honlap!

Az IF feltétel és ELSE ága, elágazó utasítás

Az elágazást az "if (feltétel) then utasítás1 else utasítás2" szerkezettel lehet megvalósítani. Az if kulcsszót egy feltétel követi. Ha a feltétel igaz, akkor a program végrehajtja a then utáni utasítást. Itt csak egy utasítás szerepelhet, ami lehet egy üres utasítás is. Az else ág nem kötelező. Ha mégis van, akkor kerül ide a vezérlés, amikor a feltétel nem teljesült. Itt is egy utasítás állhat. Fontos megemlíteni, hogy az else előtti utasítás végén nem állhat ';'. Úgy lehetne fordítani ezt, hogy: Ha (feltétel) igaz akkor utasítás_1 különben Utasítás_2;. Az egész if..then…else egyetlen utasítás. Mindig készítsd el az alapszerkezetet, s a többit aztán írd be. Az alapszerkezet a következő:

    if (feltétel) then
    begin
              
    end
    else
    begin
            
    end;
egyetlen pontosvesszővel, újat csak akkor tégy, ha utasítást írtál a szerkezetbe, de akkor mindig tenni kell.

Megfelelő gyakorlottság és adott feltételek mellett használhatod majd az alábbi formát

     if  feltétel  then  parancs1
                else  parancs2;

     Ha a feltétel igaz, akkor a parancs1 hajtódik végre, egyébként a parancs2 hajtódik végre. Fontos megjegyeznünk, hogy ha az if feltételvizsgálatnak van else ága, akkor a parancs1 után nem rakunk pontosvesszőt. Természetesen itt is mindkét parancs helyett tehetünk több egymást követő utasítást is. Ilyenkor minden esetben a begin ... end kulcsszavakkal zárjuk egybe az egymást követő parancsokat:

if  feltétel  then
begin

       parancs1i;
       parancs2i;
           ...
       parancsNi;
end

else
begin
        parancs1h;
        parancs2h;
                         ...
       parancsNh;
end;

Az elágazás mindkét ágának használatára az egyik előző példa módosított változatát oldjuk meg! Az a feladat, hogy eldöntsük egy számról kisebb-e mint 100, de azt is írjuk ki, ha nem! Íme a kód:

 

  Program Elagazas;         { Programunk neve. }

  Uses crt;                 { Crt unit csatolása. }

 

  var szam  : Integer;                        { Változó deklarálása (létrehozása). }

 

  BEGIN                                       { Főprogram kezdete. }

    ClrScr;

    Write('Add meg a számot: ');

    ReadLn(szam);                             { Bekérjük a számot. }

    if (szam<100) then                        { Ha kisebb 100-nál akkor }

    begin

                  Write('Ez a szám kisebb mint 100.');

    end
    else

    begin

            WriteLn(’A szám nem kisebb mint 100’); {de nem tudjuk nem 100 e éppen }

    end;

   ReadKey;

  END.                                        { Főprogram vége. }

Egy másik, már ismert feladat, de else ág alkalmazásával megoldva. A feladat egy számról eldönteni, hogy páros vagy páratlan.

A feladatot a szám 2-vel történő maradékos osztásával oldjuk meg. Ha a szám 2-vel történő osztásának maradéka 0, akkor a szám páros egyébként páratlan.

 

program if_then_else;

var                Deklarációk

szam:byte;

begin           FŐPROGRAM

ReadLn(szam); Értéket adunk a szam változónak

 

if szam mod 2=0 then                    HA a szam és 2 maradéka 0 AKKOR

begin

            write('A szam paros');

end                    

else                                                EGYÉBKÉNT

begin

write('A szam paratlan');                 Írd ki ....

end;

ReadLn;                                            Vár egy Enter leütésre

end.

 

Feladat: Készítsünk programot, amely bekér két egész számot, majd kiírja szavakkal az alábbi lehetőségek egyikét:,

-         az első szám kisebb,

-         az első a  nagyobb, vagy

-         egyenlő a két szám.

Megoldás: A két számot összehasonlítjuk, ha az első szám kisebb, mint a második, akkor ezt kiírjuk. Ha ez nem igaz (else), akkor a két számot újra összehasonlítjuk, ha az első szám a nagyobb, akkor kiírjuk, hogy az első szám a nagyobb. Ha ez sem igaz (belső feltétel else ága) akkor pedig kiírjuk, hogy a két szám egyenlő.

program Pelda21;

var a,b:integer;

begin

 write('Kerem az elso szamot: ');

 ReadLn(a);

 write('Kerem a masodik szamot: ');

 ReadLn(b);

 

if a<b then

begin
       WriteLn('Az 1. szam a kisebb.')
end

else

begin

if a>b then

begin

WriteLn('Az 1. szam a nagyobb.')

end

else

begin

WriteLn('A ket szam egyenlo.');

end;

end;

end.


A megoldásnál elágazások egymásba ágyazása történik. Ekkor a program áttekinthetőségét a fenti strukturált írás nagyban segíti. Miután nem teljesült, hogy a<b, még két eshetőség maradt, ezt vizsgáltuk meg a hamis ágon, ahol egy teljes IF THEN ELSE utasítást helyeztünk el. A feladatot megoldhattuk volna három külön IF utasítással is, de úgy nagyon nem elegáns!

Az eddig tárgyalt programvezérlési szerkezetekhez is meg kell tanulnunk egy fontos szabályt, mégpedig ha egy vezérlési szerkezetben egynél több utasítást szeretnénk végrehajtani, mindenképpen kötelező begin end közé zárni az utasításokat. Ezt a módszert érdemes egyetlen utasításnál is követni, hogy a későbbiekben ne érjenek kellemetlen meglepetések. Ugyanis az ilyen hibákat nagyon nehéz javítani.


Weblap látogatottság számláló:

Mai: 9
Tegnapi: 7
Heti: 20
Havi: 85
Össz.: 153 436

Látogatottság növelés
Oldal: Az IF feltétel és ELSE ága, elágazó utasítás
Pascal programozás alap és haladó szinten! - © 2008 - 2024 - kerigseoszt.hupont.hu

A HuPont.hu-nál a honlap készítés egyszerű. Azzal, hogy regisztrál elkezdődik a készítés!

ÁSZF | Adatvédelmi Nyilatkozat

X

A honlap készítés ára 78 500 helyett MOST 0 (nulla) Ft! Tovább »