1 / 27

Iteráció

Iteráció. Hernyák Zoltán Web: http://dragon.ektf.hu/aroan , E-Mail: aroan@aries.ektf.hu Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz http://aries.ektf.hu. 1. Iteráció. Programvezérlési szerkezetek.

fritzi
Download Presentation

Iteráció

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Iteráció Hernyák Zoltán Web: http://dragon.ektf.hu/aroan, E-Mail: aroan@aries.ektf.hu Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz http://aries.ektf.hu 1

  2. Iteráció Programvezérlési szerkezetek • Az utasítások végrehajtási sorrendjét szabályozzák. • Szekvencia: ugyanabban a sorrendben kell végrehajtani az utasításokat, amilyen sorrendben az a forráskódban szerepel • Szelekció (elágazás): utasítások csoportját vagy végre kell hajtani, vagy nem • Iteráció (ciklus): utasítások csoportját ismételten, többször is végre kell hajtani 2

  3. A "szelekció" vezérlési szerkezet while ( logikai-feltétel ) utasítás; A logikai feltételt (kifejezést) ciklus vezérlő feltételnek hívják. Az utasítást (utasításblokkot) ciklusmagnak hívják. A vezérlő feltétel szabályozza, hogy meddig kell végrehajtani a ciklusmag utasításait. 3

  4. A "szelekció" vezérlési szerkezet Ciklusok osztályozása vezérlés szerint Pozitív vezérlésű ciklusok: a ciklusmag utasításait mindaddig újra-és-újra végre kell hajtani, amíg a vezérlő feltétel értéke IGAZ. Ez esetben a ciklus vezérlő feltételét ‘ciklusban maradás feltételének’ szokták hívni. 4

  5. A "szelekció" vezérlési szerkezet Ciklusok osztályozása vezérlés szerint Negatív vezérlésű ciklusok: a ciklusmag utasításait addig kell ismételni, amíg a vezérlő feltétel értéke HAMIS. Ez esetben a ciklus vezérlő feltételét ‘ciklusból kilépés feltételének’ szokták hívni. 5

  6. A "szelekció" vezérlési szerkezet Ciklusok osztályozása tesztelés szerint Előltesztelő ciklusok: a, kiértékelődik a ciklus vezérlő feltétele b, ha nem megfelelő, akkor ‘e’ lépés c, ciklusmag végrehajtása d, ugrás az ‘a’ lépésre e, futás folytatása a ciklust követő következő utasítással (ciklus vége) 6

  7. A "szelekció" vezérlési szerkezet Pozitív vezérlésű előltesztelős ciklus: IGAZ vezérlő feltétel Ciklusmag utasításai HAMIS 7

  8. A "szelekció" vezérlési szerkezet Negatív vezérlésű előltesztelős ciklus: HAMIS vezérlő feltétel Ciklusmag utasításai IGAZ 8

  9. A "szelekció" vezérlési szerkezet Előltesztelő ciklusok Fontos jellemzőjük, hogy elképzelhető olyan eset, hogy a ciklusmag egyetlen egyszer sem hajtódik végre, amennyiben a vezérlő feltétel már legelső esetben sem megfelelő értékű. Ekkor a ciklus ‘el sem indul’. 9

  10. A "szelekció" vezérlési szerkezet Ciklusok osztályozása tesztelés szerint Hátultesztelő ciklusok: a, ciklusmag végrehajtása b, kiértékelődik a ciklus vezérlő feltétele b, ha megfelelő, akkor ‘a’ lépés újra c, futás folytatása a ciklust követő következő utasítással (ciklus vége) 10

  11. A "szelekció" vezérlési szerkezet Pozitív vezérlésű hátultesztelős ciklus: Ciklusmag utasításai vezérlő feltétel IGAZ HAMIS 11

  12. A "szelekció" vezérlési szerkezet Negatív vezérlésű hátultesztelős ciklus: Ciklusmag utasításai HAMIS vezérlő feltétel IGAZ 12

  13. A "szelekció" vezérlési szerkezet Hátultesztelős ciklusok Fontos jellemzőjük, hogy a ciklusmag egyszer garantáltan végrehajtódik, legfeljebb többször már nem. 13

  14. A "szelekció" vezérlési szerkezet Pozitív vezérlésű logikai előltesztelős ciklus while (feltétel) utasítás; • while (feltétel) • { • utasítás; • utasítás; • utasítás; • } • köv.utasítás IGAZ! IGAZ? HAMIS? HAMIS! 14

  15. A "szelekció" vezérlési szerkezet Pozitív vezérlésű logikai hátultesztelős ciklus do utasítás; while (feltétel); do { utasítás; utasítás; } while (feltétel); köv.utasítás IGAZ? HAMIS? IGAZ! HAMIS! 15

  16. A "szelekció" vezérlési szerkezet Példa: int i=1; while (i<=10) { Console.WriteLine(i); i++; // i = i+1; } Console.WriteLine(”Kész”); 16

  17. A "szelekció" vezérlési szerkezet Példa: int a = int.Parse( Console.ReadLine() ); int i=2, db=0; while (i<a) { if (a%i==0) db++; i++; } Console.WriteLine(”Db={0}”,db); 17

  18. A "szelekció" vezérlési szerkezet BREAK utasítás A „break” azonnal terminálja az őt tartalmazó ciklust, a végrehajtás azonnal a ciklust követő utasításra ugrik. 18

  19. A "szelekció" vezérlési szerkezet Példa (‘középentesztelős’ ciklus): int db=0; while (true) { int a = int.Parse( Console.ReadLine() ); if (a==0) break; if (a%2==0) db++; } Console.WriteLine(”Db={0}”,db); 19

  20. A "szelekció" vezérlési szerkezet CONTINUE utasítás A „continue” azonnal befejezi az aktuális ciklusmag végrehajtását (átugorja a maradék sorokat), és a vezérlés átkerül a ciklus vezérlő feltételének kiértékelésére. 20

  21. A "szelekció" vezérlési szerkezet Példa: int i=0,ossz=0; while (i<10) { int a = int.Parse( Console.ReadLine() ); if (a<0) continue ossz = ossz + a; i++; } Console.WriteLine(”Osszeg={0}”,ossz); 21

  22. A "szelekció" vezérlési szerkezet FOR ciklus Logikai előltesztelős ciklusok csoportjába tartozik. Működése szimulálható WHILE ciklussal… 22

  23. A "szelekció" vezérlési szerkezet Példa: int i=0; while (i<10) { … i++; } for (int i=0;i<10;i++) { … } 23

  24. A "szelekció" vezérlési szerkezet for(kezdőkif; log.feltétel; it.lépés) ut; Kezdőkifejezés általában értékadó utasítás csak egyszer hajtódik végre a ciklus vezérlő feltétele, pozitív vezérlésű, előltesztelős eset Iterációs lépés minden ciklusmag végrehajtás után automatikusan lefut ez a lépés is ciklusmag a, kezdőkif. végrehajtása b, amennyiben feltétel hamis –> break c, ciklusmag d, iterációs lépés e, újra ‘b’ lépés 24

  25. A "szelekció" vezérlési szerkezet for(kezdőkif; log.feltétel; it.lépés) ut; BREAK: hasonlóan működik, azonnal kilép a for ciklusból a következő utasításra. CONTINUE: először az iterációs lépésre ugrik, csak utána a feltétel kiértékelésre! 25

  26. A "szelekció" vezérlési szerkezet Példa: int ossz=0; for (int i=0;i<10;i++) { int a = int.Parse( Console.ReadLine() ); if (a<0) continue ossz = ossz + a; } Console.WriteLine(”Osszeg={0}”,ossz); ez uaz, mint a 21-es fólia while ciklusa? 26

  27. A "szelekció" vezérlési szerkezet foreach ciklus Lista-alapú ciklus, egy adott lista minden elemét fel kell dolgozni egyesével, később lesz szó róla a lista mint adatszerkezet ismertetése után 27

More Related