1 / 23

Java programozási nyelv 2. rész – Vezérlő szerkezetek

Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember. Java programozási nyelv 2. rész – Vezérlő szerkezetek. Tartalomjegyzék. Programozási módszertanok Strukturált programozás, struktogram Vezérlő szerkezetek JAVA-ban Az utasítás fogalma

zahur
Download Presentation

Java programozási nyelv 2. rész – Vezérlő szerkezetek

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. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember Java programozási nyelv2. rész – Vezérlő szerkezetek

  2. Tartalomjegyzék • Programozási módszertanok • Strukturált programozás, struktogram • Vezérlő szerkezetek JAVA-ban • Az utasítás fogalma • A blokk fogalma • Egyszerű elágazás (if) • Összetett elágazás (switch) • Elöltesztelő ciklus (while) • Hátultesztelő ciklus (do-while) • For ciklus (for) • For ciklus folyt. • Címkék • Break utasítás • Continue utasítás • Visszatérés egy metódusból (return)

  3. Programozási módszertanok • Egykoron: A programozás művészet volt • Monolitikus programozás, egy ember ír egy programot • A programnak nincs belső struktúrája • Programozó zseni, nem tudja elmondani, hogyan csinálja! • Szoftverkrízis • Több programozóra van szükség • Szükség van a programozók képzésére • Egy program soha nincs készen, fel kell készülni a javításokra, továbbfejlesztésre, esetleg a programozó nélkül! • Művészetből tudománnyá kellett alakítani a szakmát • Ezért van szükség módszertanokra

  4. Moduláris programozás • Alapelv: Oszd meg és uralkodj! • Top-down dekompozíció - Bottom-up kompozíció • Előnyök: • Tiszta szerkezet, tiszta kapcsolatok • Egy-két helyen kell módosítani, ha valamilyen javításra, változtatásra van szükség • Párhuzamos fejlesztést, tesztelést tesz lehetővé • Egyszerre több ember dolgozhat egy feladaton • Újrafelhasználhatóság, bizonyos modulok szabványosíthatók, újra felhasználhatók • Hátrányok: • Nem ad módszert arra, hogy tökéletesen jól működő modulokból hogyan lehet jó programot összeállítani.

  5. Strukturált programozás • DIJKSTRA: Hierarchikus programozás • Top-down elven fokozatosan finomítjuk a programot. Nincsen bottom-up fázis. • Minden szinten tudományosan bizonyítható a program helyessége. • BOEHM ÉS JACOPINI: Minden algoritmus felépíthető a következő elemekből: • szekvencia • szelekció, elágazás • iteráció, ciklus • JACKSON-ELV: az adatszerkezetek is leírhatók a fenti három szerkezettel

  6. Struktogram • A strukturált programozás alapszerkezeteit egymásba ágyazott grafikus elemekkel ábrázoljuk. • Amit le tudunk rajzolni, azt könnyedén átírhatjuk strukturált programmá, és viszont. • Bármely strukturált programot le tudunk rajzolni struktogrammal. • Alapfogalmak: http://www.ngkszki.hu/~fidoo/download/pmmf/ProgTerv/STUKI.HTM

  7. Struktogram alapelemek 1 • Elágazás (if) • Szekvencia utasítás 1 utasítás 2 • Elágazás (switch)

  8. Struktogram alapelemek 2 • Előltesztelő ciklus (while) • Kidolgozott példak: • http://www.ngkszki.hu/~fidoo/download/pmmf/ProgTerv/PELDAK.HTM • Egy struktogram tervező program: • http://www.myfriend.de/index.htm?/download.html

  9. Példa struktogram

  10. Vezérlőszerkezetek Java-ban • A strukturált programozás megvalósítása JAVA-ban • A C++ szintaktikájára épül kisebb eltérésekkel • Ennek elemeit vesszük sorra a következő oldalakon • Csak az eltéréseket emelem ki!

  11. Az utasítás fogalma • Utasítás: • kifejezés utasítás • értékadás • postfix, vagy prefix ++, ill. -- -szal képezett kifejezés • metódushívás • példányosítás (a new operátor használatával) • deklaráció utasítás • egy lokális változó létrehozása és opcionális inicializálása • a lokális változó a deklarációtól az őt magában foglaló blokk végéig létezik • A kétfajta utasítás tetszőleges sorrendben követheti egymást. • Minden utasítást pontosvessző (;) zár le.

  12. A blokk fogalma • Blokk (utasítások szekvenciája): • Utasítások { és } jelek közé írt sorozata • Mindenhol, ahol utasítás írható, ott blokk is írható. • Például: { int i; i = 123; int j = i*i; }

  13. Egyszerű elágazás (if) if (logikai kifejezés) utasítás1 else utasítás2 Sajnos mindkét ágban állhat egyetlen utasítás is, ezért fennáll az if-then-else probléma: if (a == 1) { if (b == 2) { c = 1; } else { c = 2; } } if (a == 1) if (b == 2) c = 1; else c = 2;

  14. Összetett elágazás (switch) switch (egész kifejezés) { case cimke1: utasítások; break; case cimke2: case cimke3: utasítások; break; ... default: utasítások; }

  15. Elöltesztelő ciklus (while) while (logikai kifejezés) utasítás

  16. Hátultesztelő ciklus (do-while) do utasítás while (logikai kifejezés) Ha a logikai kifejezés hamis, egyszer akkor is lefut a ciklusmag!

  17. For ciklus (for) for (kezdet; logikai kifejezés; továbblépés) utasítás Ez nagyjából ekvivalens a következővel: { kezdet; while (logikai kifejezés) { utasítás; továbblépés; } }

  18. For ciklus folyt. • Miért csak nagyjából ekvivalens a kétféle ciklus? • continue utasítás • Miért fontos a külső zárójel a while ciklus körül?

  19. Címkék • Címke • bármely utasítás elé tehetünk címkét, például: cimke: utasítás • A most következő utasítások használhatók címkével és anélkül is. • Ha megadunk címkét, akkor a címkével jelölt blokkra vonatkozik. • Ha nem adunk meg címkét, akkor a legbelsőre.

  20. Break utasítás • Egy blokkból való kilépésre szolgál. • Például: int i = 1; ciklus: while (i < 1000) { for (int j = 1; j <= i; j++) { if (KilepesTeszt(i, j)) break ciklus; … } } • Break utasítással nem lehet kilépni egy metódusból.

  21. Continue utasítás • A ciklusmag hátralévő részét átugorva, a ciklus feltételére kerül a vezérlés. • For ciklus esetén a továbblépés is lefut! • Például: while (! bemenet.eof()) { sor = bemenet.readln(); if (ures(sor)) continue; Feldolgoz( sor ); }

  22. Visszatérés egy metódusból (return) • Egy metódusból a return utasítással tudunk visszatérni. • A return után írt kifejezés lesz a metódus visszatérési értéke. • A Java fordító ellenőrzi, hogy a metódus minden lehetséges lefutása esetén végrehajtásra kerüljön egy return utasítás. Ha úgy találja, hogy ez nem teljesül, akkor fordítási hibát kapunk.

  23. Nem létezik goto utasítás • A Java nyelvben nincsengoto utasítás! • Ennek ellenére a goto foglalt kulcsszó! • Az eddig megismert szerkezetekkel - kiegészítve a később tárgyalandó finally-val - minden felmerülő programozási feladat megoldható.

More Related