Vezérlő utasítások

20
Vezérlő utasítások

description

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. - PowerPoint PPT Presentation

Transcript of Vezérlő utasítások

Page 1: Vezérlő utasítások

Vezérlő utasítások

Page 2: 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

Page 3: Vezérlő utasítások

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.

Page 4: Vezérlő utasítások

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

Page 5: Vezérlő utasítások

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.

Page 6: Vezérlő utasítások
Page 7: Vezérlő utasítások

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.

Page 8: Vezérlő utasítások

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

Page 9: Vezérlő utasítások

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.

Page 10: Vezérlő utasítások
Page 11: Vezérlő utasítások

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.

Page 12: Vezérlő utasítások

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;

Page 13: Vezérlő utasítások

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

Page 14: Vezérlő utasítások
Page 15: Vezérlő utasítások

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.

Page 16: Vezérlő utasítások

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

Page 17: Vezérlő utasítások

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.

Page 18: Vezérlő utasítások

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

Page 19: Vezérlő utasítások

Ö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

Page 20: Vezérlő utasítások

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