Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Ciklusok (iterációk). A program egyik legfontosabb tulajdonsága, hogy ismétléseket képes végrehajtani. A ciklus (iteráció) ismétlést jelent, ilyenkor.

Hasonló előadás


Az előadások a következő témára: "Ciklusok (iterációk). A program egyik legfontosabb tulajdonsága, hogy ismétléseket képes végrehajtani. A ciklus (iteráció) ismétlést jelent, ilyenkor."— Előadás másolata:

1 Ciklusok (iterációk)

2 A program egyik legfontosabb tulajdonsága, hogy ismétléseket képes végrehajtani. A ciklus (iteráció) ismétlést jelent, ilyenkor egy vagy több utasítás újra és újra végrehajtódik. Nem érdemes számítógépre vinni olyan problémát amely egy számolást csak egyszer végez el. Gyakoribbak azok a feladatok, amelyben egy számolási eredményt sokszor kell produkálni különböző induló értékek mellett. Vannak olyan esetek amikor az iterációk számát előre eltudjuk dönteni, de van azonban amikor a futási körülményektől függ. Pl. – ha a hét minden napjára akarunk végezni valamilyen számolást, akkor a program írásakor tudjuk, hogy az iterációk, ismétlések száma 7 lesz. - ha megadott számok között keresünk egy adott tulajdonságú számot, akkor nem tudjuk előre megadni az ismétlések számát. A számokat sorban ellenőrizzük, hogy rendelkezik- e az adott tulajdonsággal és ha igen akkor a keresést nem folytatjuk tovább. A program tehát az adatbekérést addig hajtja végre ismételten, ameddig a program használója nem hajlandó valamilyen, a program számára elfogadható adatot beütni. Ilyenkor az ismétlések számát képtelenség megjósolni. Lehet hogy elsőre beüti a használható értéket, de lehet, hogy még másnap se lép ki a ciklusból.

3 A ciklusból való kilépésnek feltétele van! Itt az a feltétel, hogy a beütött érték elfogadható legyen. Előfordulhat, hogy a ciklusnak belépési feltétel van: csak akkor akarjuk végrehajtani a ciklus magját (utasítások sorozatát), ha bizonyos feltételek teljesülnek. Pl. csak akkor sípoljon a gép, ha lenyomom a Space billentyűt. A pascal programozási nyelv, három mechanizmust kínál az iterációk megvalósítására. Ezek a következők: WHILE- előtesztelős ciklus (feltételes) REPEAT- hátul tesztelős ciklus (feltételes) FOR- számláló ciklus (növekményes)

4 1. WHILE- előtesztelős ciklus A program még a ciklusba való belépés előtt megvizsgál egy feltételt (ez a belépési feltétel) és ha ez teljesül, akkor a ciklusmag végrehajtódik, egyébként nem. A ciklusmag ismételten végrehajtódik, míg a belépési feltétel teljesül. Ha már nem teljesül, akkor a vezérlés a ciklus utáni utasításra kerül. WHILE … DO jelentése: amíg … csináld Amíg a feltétel igaz, hajtsd végre az utasítást!

5 Folyamatábrája: Pascal kódja: F U HamisIgaz While F Do U; Vagy While F Do Begin U1; U2; End; ciklusfeltétel ciklusmag A while ciklusnak képesnek kell lennie arra, hogy a végrehajtás feltételét megváltoztassa. Ha a ciklusfeltétel sosem változik meg, akkor a ciklusból való kilépés reménytelen, ezt nevezzük végtelen ciklusnak.

6 A végtelen ciklus programozási hiba, ebben az estben a program lemerevedik, ilyenkor le kell ütni a Ctrl-Break vagy Ctrl-C billentyűkombinációt, mely megszakítja a program futását. Adjuk meg tehát a lehetőséget, hogy a ciklusfeltétel hamis is lehessen. A ciklusfeltétel megváltoztatása a ciklusmag dolga. A while ciklus tipikusan olyan problémák megoldására javasolt, melyben az induló feltételek határozzák meg a ciklusmag végrehajtásának szükségességét. 1.feladat: olvassunk be számokat addig, míg egy nullát nem ütnek be. A nulla lezárja a sorozatot. Írjuk ki a beütött számok darabszámát és összegét.

7

8 2.feladat: Írjuk ki az 1 és 100 közé eső összes 3- mal osztható számokat.

9 Feladatok : 1. Írassuk ki n természetes, páratlan számok összegét: S= … Írjatok egy programot, amely kiszámolja, hogy valamennyi megtakarított pénz, hány hónap múlva éri el a bankban a Ft- ot, ha havi 2%-os kamattal számol. 3. Számoljátok ki az n. szám faktoriálisát. Pl.: 5!=1*2*3*4*5 = Mozgassunk a képernyőn egy karaktert, 4 billentyű segítségével. 5. Beolvasunk egy sorozat egész számot. Írassátok ki a sorozatban kapott legnagyobb értéket.

10 Ebben az esetben a ciklus magja egyszer mindenképpen végrehajtódik, majd a ciklus végén történik egy feltételvizsgálat, ami eldönti, hogy kiléphetünk- e a ciklusból vagy sem. Ha nem léphetünk k, akkor újból végrehajtódik. Itt a feltétel kilépési feltétel, vagyis abba lehet hagyni a ciklust. REPEAT … UNTIL; jelentése: Ismételd … Amíg 2. REPEAT- hátul tesztelő ciklus

11 Folyamatábrája:Pascal kód: F U HamisIgaz Repeat U Until F; Vagy Repeat Begin U1; U2; End; Until F;

12 1.feladat: Kérjünk be egy számot! A számot csak akkor fogadjuk el, ha az 1 és 31 közé esik.

13 2.feladat: Számítsuk ki az első n természetes páros szám összegét. Az első 4 páros szám: 2, 4, 6.1.lépés: s=0+2=2 2.lépés: s=2+ Az első 4 páros szám: 2,4,6,8 Ezek összege: s=20.

14 Feladatok: 1. Olvassuk be egy háromszög oldalainak hosszuságát. A beolvasást addig ismételjük, míg nem teljesül a következő két feltétel: - az adatok tényleg lehetnek egy háromszög oldalai - a háromszög területe 20 és 30 közé esik Adjunk üzenetet, ha valamelyik feltétel nem teljesül. 2. Adjátok meg az első n páros szám szorzatát.

15 Számláló, vagy növekményes ciklus esetén a ciklusmagot egy előre meghatározott szám- szor hajtunk végre. A ciklusváltozót (ciklust kísérő változó), valamint az értékhatárokat (kezdőérték és végérték) a programozó adja meg. Pl. n Byte típusú változó 1 és 10 közötti érétkeire, a végrehajtások száma 10. tehát a kezdőérték 1 és a végérték 10, az ismétlések száma tehát a ciklusváltozó 10. A FOR egy előtesztelős ciklus, ahol előre lehet tudni, hogy a ciklusmag hányszor kerül végrehajtásra. A kezdő és végértékeknek értékadása szerint kompatibilisnek kell lennie a ciklusváltozóval. 2. FOR- számláló/ növekményes ciklus

16 Folyamatábrája: ciklusváltozó:= kezdőérték ciklusváltozó<= végérték ciklusváltozó növelése U igazhamis Pascal kódja: FOR ciklusváltozó:= kezdőérték TO végérték DO U;

17 A FOR ciklus magját mindaddig kell végrehajtani, ameddig a ciklusváltozó értéke egy megadott határon belül van. A ciklusba való belépéskor a ciklusváltozó kezdőértéket kap, amely minden cikluslépésben egyesével növekszik (a DO alkalmazás esetén) illetve csökken (a DOWNTO alkalmazás esetén). A ciklusmag mindaddig hajtódik végre, amíg a ciklusváltozó el nem éri a végértéket. TO FOR ciklusváltozó:= kezdőérték végérték DO DOWNTO

18 Észrevételek: 1. A Do után nem szokás ; tenni 2. Az értékadó utasításban := kell tenni, nemcsak = 3. Ha a ciklusmag több utasításból áll, akkor ahhoz hogy mindegyik utasítást végre hajtsa Begin és ENd közé kell raknunk őket. 4. A ciklusváltozó bármely felsorolt típus lehet, azaz: byte, ShortInt, Integer, Word, LongInt, valamint lehet karakter, logikai, felsorolt, stb. ezek mind sorszámozott típusúak, ez azért is fontos, mert csak az ilyen típusúakat tudja léptetni a program, a valósat például nem. A kezdő és végértékeknek természetesen a ciklusváltozó típusához kell igazodniuk.

19 Jelentősége: Például ha kiakarunk számítani egy összeget: S= …. +2*n-1, akkor ezt eddigi ismereteink alapján így írnánk meg: s:=0; i:=1; while i<=n do begin s:=s+2*i-1; i:=i+1; end; Kedvező lenne ha bármilyen ilyen típusú utasítást: i:=kezdőérték; while i<= végérték do begin utasítás; i:=i+1; end; könnyebben lehetne megírni, ugyanis gyakran használják. Ezt csakis a növekményes ciklussal lehetne megvalósítani: s:=0; for i:=1 to n do s:=s+2*n-1;

20 1.feladat: Most at írunk. Írjuk ki, hogy az elkövetkező években 2022-ig, melyik évben mennyi lesz József fizetése, ha az évenként10%- kal növekszik. József fizetése pillanatnyilag 80ezer Ft.

21

22 2.feladat: Rajzoljunk ki a képernyőre egy 40 széles és 10 magas csillagokból álló téglalapot.

23 Menükészítés

24

25

26 Feladatok: 1. Készítsétek el a következő számpiramist, ahol az n szám értékét a billentyűzetről adtok meg, bekéri a program: a) ……… … n b) n n-1 n-2 … …………………

27 c) Páratlan számok piramisa:d) Páros számok piramisa: ……….... …………… …… (2*n-1) …… 2*n e) …………………………………………………. 1…………………………………………………(2*n – 1)

28 2. Számítsátok ki a következő sorozatok értékeit: a) P=(1- 1/2*2)*(1- 1/3*3)* … *(1- 1/n*n) b) S=1+1*2+1*2*3+ … + 1*2*3*…*n c) E=1- 1*2+1*2*3- … +1*2*3*…*n d) F= … +n 3. Határozd meg egy szám adott kitevőjű hatványra emelésének értékét. 4. Határozd meg egy szám osztóit, írasd is ki őket!

29

30

31

32

33


Letölteni ppt "Ciklusok (iterációk). A program egyik legfontosabb tulajdonsága, hogy ismétléseket képes végrehajtani. A ciklus (iteráció) ismétlést jelent, ilyenkor."

Hasonló előadás


Google Hirdetések