Vezérlő utasítások
description
Transcript of Vezérlő utasítások
Vezérlő utasítások
A program menete: az utasítások sorban, egymás után hajtódnak végre.
Legtöbb esetben a feladat megkívánja a program strukturáltságát, előfordul, hogy egy utasítást vagy utasításcsoportot ismételni akarunk többször, vagy addig, míg valamely feltétel be nem következik.
A vezérléseket szolgálja az úgynevezett vezérlő utasítások.
Vezérlések: elágazásokismétlésekugrálások
Program felépítése:
- szekvencia: összetett uatsítás: BEGIN, END
- szelekció (elágazások): IF, CASE
- iterációk (ciklusok): WHILE, REPEAT, FOR,
feltétel nélküli vezérlésátadás: GOTO
1. Elágazások (szelekció) Egy programot előre felkészítünk a lehetséges esetekre, majd
futtatáskor az aktuális állapottól függően a program különböző ágaira folyik a vezérlés.
A szelekció, elágazás válogatást jelent. Előre elgondoljuk, hogy milyen esetek következhetnek be és minden esetre megadunk egy tevékenységet vagy tevékenységsorozatot, melyet a program végrehajt, majd ezután a program újra összefolyik és egy közös tevékenységgel folytatódik.
Az esetek száma szerint megkülönböztetünk:
egyágú elágazást
kétágú elágazást
többágú elágazást
Az elágazások egymásba ágyazhatók, így bonyolultabb választási lehetőségeket is betudunk programozni.
1.1. Feltételes elágazások: IFa) Egyágú elágazás:
IF … THEN jelentése: HA … AKKOR
Ha igaz a megadott feltétel, akkor a hozzá kapcsolódó tevékenységet kell végrehajtani, egyébként azt ki kell kerülni és a programot az azt követő közös tevékenységgel folytatjuk.
Folyamatábrája: Pascal kód:
IF F1 then
U1;F1
U1
HamisIgaz
Ha az igaz ágon több utasítást akarunk végrehajtani, akkor a végrehajtandó utasításokat a BEGIN- END blokkba zárjuk. Ha nem zárjuk
a Begin és End közé akkor csak az első utasítást fogja figyelembe venni, a többit nem.
IF F1 then
Begin
U1;
U2;
…
Un;
End;
1.feladat: Olvassunk be két egész számot: a és b.
Írj programot amely kiírja a nagyobbik számot! Ha a>b, akkorírja ki max:= a és min:=b.
Ha az a>b, tehát ha megfelel a feltételvizsgálat.
Ha nem teljesült a feltételvizsgálat, nem csinál semmit, kilép.
b) Kétirányú feltételes elágazás:
IF …THEN …ELSE jelentése: HA …AKKOR … EGYÉBKÉNT
Ha igaz a megadott feltétel, akkor a hozzá kapcsolodó tevékenységet kell végrehajtani, egyébként egy másikat. Az elágazás után a program összefolyik egy közös utasítás végrehajtására.
Folyamatábrája: Pascal kódja:
IF F1 then U1
ELSE
U2;
F1
U1
Igaz Hamis
U2
Ha az F1 feltétel igaz, akkor az U1 tevékenység kerül végrehajtásra, egyébként (ha F1 hamis) az U2. itt is lehet az U1 és U2 utasítás is összetett utasítás, tehát akkor Begin és End közé kell zárjuk.
! Az ELSE előtt soha nem teszünk pontosvesszőt ;
hibaüzenetet fogunk kapni.
2.feladat: Kérjetek be a felhasználótól két számot, majd írassátok ki a nagyobbikat.
3.feladat: Kérjetek be a felhasználótól két számot, majd írassátok ki a nagyobbikat (max) és a legkisebbet (min). Ha a<b, akkor min=a és max=b másképpen min=b és max=a.
c) Egymásba ágyazott feltételes elágazás:
Ha egy If- Then- Else ágon van egy másik If- Then- Else, akkor figyelnünk kell arra, hogy mindegyik else , a hozzá legközelebb álló If- then utasításhoz tartozik.
Folyamatábrája: Pascal kódja:
F1
U1
Igaz Hamis
U2
F2HamisIgaz
IF F1 THEN
U1
ELSE
IF F2 THEN
U2;
4.feladat: Olvassunk be három egész számot: a, b, c. Írassátok ki a legnagyobbat közülük.
Először meg kell tervezni a programot, milyen lépések hogyan fogják követni egymást.
Start
a > b
a,b,c
igaz hamis
b > ca > cigaz igazhamis hamis
a c b c
Stop
Feladatok:
1. Készíts egy olyan programot amely kiszámítja a kör vagy a téglalap területét, de ez előtt kérdezze meg a felhasználótól, hogy mit szeretne hogy kiszámoljon neki a program. Kör esetén a pi ismert, tehát konstansként használjátok és kérjétek be a sugár hosszát. Téglalap esetén pedig az oldalak hosszát, végül írassa ki a terület értékét a megfelelő szöveg kíséretében.
2. Döntsétek el három egész számról, a, b, c, hogy képezhetik- e egy háromszög oldalait. Ha igen akkor számolja ki a területét, ellenkező esetben pedig adjon egy rövidke kis hangot.
3. Döntsétek el egy háromszögről, hogy milyen típusú. Persze mindenek előtt, hogy képezhet- e háromszöget.
4. Adott három beolvasott szám. Írassátok őket csökkenő sorrendbe.5. Olvassatok be két nevet, majd helyezzétek őket abc sorrendbe.6. Döntsétek el egy egész számról, hogy osztható- e egyszerre a három
különböző számmal. (a, b, c)7. Írj programot, mely bekér két valós számot, majd megkérdi a
felhasználót, hogy mit szeretne kiszámolni, a számtani vagy mértani középarányosát és ennek függvényében végzi a számításokat.
8. Írj egy programot, mely bekér egy számot 1- től 7- ig és ha ez a szám pl. 1 akkor kiírja azt hogy hétfő. Tehát a hét napjaihoz számot rendel. Ha nagyobb számot ad mint 7, vagy kissebet mint 1, akkor írja ki hogy Tévedés.
9. Olvassatok be egy karaktert! Írassátok ki ennek nagybetűs formáját. Ha a beolvasott karakter nagybetű, akkor alakítsátok kisbetűssé még a kiírás előtt.
Még több feladat: Agster Erzsébet: Progr. tankönyv 158 oldalán
1.2. Többirányú feltételes elágazás:CASE
CASE: jelentése ESET, amely esetszétválasztásra utal.A Case segítségével egy adott kifejezés (szelektor) vagy változó
értékeiből válogathatunk.Csak sorszámozott típusú kifejezés használható, valós számok
esetén a case nem alkalmazható.
Formája: Működési elve:CASE kifejezés OF
érték1: utasítás1;érték2: utasítás2;…
ELSE utasításn; END;
- megadjuk a kifejezés értékét
- ha az érték megfelel valamelyiknek a felsoroltak közül, akkor végrehajtódik a neki megfelelő utasítás, ellenkező esetben az else ág utasítása hajtódik végre.
5.feladat: Olvassunk be egy nem negatív egész számot, valakinek az életkorát jelképezi. Kortól függően írjuk ki a megfelelő üzenetet.
0 – 13 évig: Gyerek14- 17 évig: Fiatal korú18- 23 évig: Ifjú24- 59 évig: Felnőtt60 évtől: Idős
Összefoglaló feladatok:1. A billentyűzetről beolvasunk egy karaktert. Írjatok egy programot amely
eldönti, hogy mi ez a karakter, betű, szám, operátor (művelet) vagy egyenlőség jel.
2. Írjatok egy programot, amely a billentyűzetről beírt számnak megfelelően kiírja, hogy milyen évszakról van szó. Oldjátok meg IF elágazással és Case elágazással is.
3. Döntsétek el egy adott évszámról, hogy szökőév-e vagy sem. (szökőév, ha az adott szám osztható 4- el, és nem osztható 100-al, vagy osztható 400- al.)
4. Billentyűzetről megadott x értékére számoljuk ki az f(x) függvény értékét, tudván, hogy:
f(x)= x*x + 1 , ha x<= - 3
x – 2 , ha x Є (-3, 3)
x * x – 4*x + 5 , ha x>=3
5. Olvassatok be egy hónap és egy nap értékét. Írjátok ki, hogy a beolvasott dátum jó- e. (a februárt vegyük 28 naposnak)
6. Adott két szám és a négy alapművelet. Döntse el , hogy melyik műveletet hajtsa végre. Pl. ha + ütnek le akkor összegzi a két számot és így tovább. Oldjátok meg mind a két típusú elágazással.
7. Adott két ember magassága, rendezzétek növekvő sorrendbe.
8. Döntsétek el egy számról hogy pozitív- e vagy negatív, vagy 0.
9. Rendezzétek három ember testmagasságát.
10. Döntsétek el egy havi bérről hogy alacsony, átlagos vagy magas.
11. Döntsétek el egy számról, hogy -30 és +40 között van- e?
12. Legyen egy szám amely osztható 5-el és 7-el, de nem osztható 3-mal és 11- el.
13. Döntsétek el milyen négyszögről van szó.
További feladatok: Angster Erzsébet: Prog. Tankönyv I. 158 oldal