feltételes elágazások
vitafórum(0)
szerző: elodanidátum: 2009-05-17
Kategóriák:
Pascal/Alapok
Ebben a cikkben szeretném bemutatni a feltételes elágazásokat a pascal nyelvben. Ezt igyekszem egyszerűen és részletesen tenni azok kedvéért akik most kezdtek el programozással foglalkozni. (Lévén a pascal az oktatás egyik legkedveltebb nyelve).
Na ennyi bevezető után csapjunk is a lecsóba:
Teljes(és hivatalos) nevük szelekciós vezérlések
fajtái:
-egyszerű szelekció
(van egy feltétel, ha teljesül csinálunk valamit egyébként semmit)
-egyszerű szelekció else ággal
( van egy feltétel, ha teljesül csinálunk valamit, egyébként valami mást)
-többszörös szelekció
(van egy feltétel, ha teljesül csinálunk valamit, ha nem akkor van egy másik feltételünk és ha az teljesül valami mást csinálunk ha nem...és így tovább ameddig kell)
-esetkiválasztásos szelekció
(az előző egy spec. változata azt nézzük, hogy az adott kifejezés milyen halmazba esik -mi az értéke)
pascalul azt,hogy ha úgy mondjuk, hogy:
if ... then a különben pedig else
Na nézzünk valami definíció-szerűséget:
Ha feltételektől függően kell bizonyos műveleteket végrehajtani akkor ezt a tevékenységet szelekciós vezérlésnek nevezzük.
Huh, igérem többet nem fárasztalak hasonló száraz def. -ekkel, de hát ami kell az kell ;) megj:(ha most egy világ omlott össze benned, hogy nem olvashatsz több ilyen szépen megírt és érthető definíciót megnyugtatlak későbbi tutorialokba még tervezem... :D)
Nézzünk egy egyszerű példát:
Ez a kis progi kiirja egy számról az előjelét (+/-/0)
- program pelda1;
- var szam:integer;
- begin
- readln(szam);
- if szam<0 then writeln('A szám negatív')
- else if szam=0 then writeln('A szám amit beírtál: 0')
- else writeln('A szám pozitív');
- readln; {a végén egy üres beolvasással állunk meg
- hogy megnézhessük az eredményt}
- end.
Ez a kis program beolvas egy számot, majd először megnézi, hogy negatív-e, ha nem akkor még mindig lehet pozitív vagy 0 tehát ezt is megnézzük, és a megfelelő szöveget kiírjuk.
Észrevettük, hogy az else előtt nem tettünk pontosvesszőt?
No de nem úgy volt, hogy a pascalban minden utasítás mögé ; kell?
Ez azért van mert a pascalban az if- else... szerkezet egy utasításnak számít.
Tehát else elé NE! tegyünk pontosvesszőt.
Ha több utasítást szeretnénk végrehajtani akkor azokat begin és end; közé kel raknunk.
valahogy így:
if feltétel then begin
művelet1;
művelet2;
...
művelet_sokadik;
end;
No elérkeztünk az esetkiválasztásoshoz is:
Ez azt vizsgálja, hogy egy adott kifejezés milyen halmazba esik (milyen értéket vett fel)
természetesen ez megoldható sok-sok
if- else if -el is de ez sokkal bonyolultabbá teszi kódunkat.
erre a pas. kifejezés a case .. of
nézzünk erre is egy példát:
- program pelda2;
- var szam:integer;
- begin
- readln(szam);
- case szam of
- 1..5:writeln('Egy és öt között van');
- 6..99:writeln('6 és 99 között van');
- 100:('pont 100');
- else writeln('Nagyobb mint 100, vagy kisebb mint 1');
- end;
- readln;
- end.
ez kis progi kiír valamit egy számról értéke szerint.
(akinek ez case-es dolog nem volt teljes tiszta az eméssze egy kicsit, esetleg olvassa át még párszor)
Remélem elég érthető volt a dolog, és nem volt túl tömör. Ha mégis, nyugodtan írd meg nekem mi a bánatod ez ügyben.
Aki meg nem hiszi, járjon utána...
