1 / 32

Informatika Előadás

Informatika Előadás. Algoritmusok Tusnádi István. Az algoritmus definíciója. Azon egyértelmű instrukciók halmazát, mely egy konkrét feladat véges számú lépésben történő megoldásához vezet, algoritmusnak nevezzük. Az algoritmizálhatóság feltételei. Lépésekre bontott végrehajtható folyamat

jace
Download Presentation

Informatika Előadás

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. Informatika Előadás Algoritmusok Tusnádi István

  2. Az algoritmus definíciója • Azon egyértelmű instrukciók halmazát, mely egy konkrét feladat véges számú lépésben történő megoldásához vezet, algoritmusnak nevezzük

  3. Az algoritmizálhatóság feltételei • Lépésekre bontott végrehajtható folyamat • Minden lépés egy elemi utasítás vagy felbontható elemi utasításokra • Meghatározott a végrehajtási sorrend • Véges a leírás

  4. Az algoritmus műveletei • szekvenciák (utasítások egymás utánisága) • iterációk más néven ciklusok (utasítások ismétlődése) • szelekciók (az algoritmus feltételtől függő elágaztatása)

  5. Az algoritmizálás alapjai • Az algoritmus lépésekből áll. • Minden lépésnek egyértelműen végrehajthatónak kell lennie. • A végrehajtandó instrukcióknak valamilyen célja van. • Az algoritmusnak vannak bemenő adatai melyeket felhasznál. • Az algoritmusnak legalább egy kimenő adatot produkálnia kell. • Az algoritmus véges számú lépésben megoldhatónak kell lennie. • Az algoritmus legyen hatékony és felhasználó barát

  6. Egymás utáni utasítások • Hétköznapi életből vett algoritmus: • Utcai telefonkészülék használatának algoritmusa • Emelje fel a kézibeszélőt • Várja meg a tárcsahangot • Ha van tárcsahang, akkor • Dobjon be egy 50 Ft-ost! • Tárcsázzon! • Vége

  7. Feltételtől függő elágaztatás • Az előbbi példa finomítása: • Utcai telefonkészülék használatának algoritmusa • Emelje fel a kézibeszélőt • Várja meg a tárcsahangot • Ha nincs búgó hang, akkor • Keressen egy másik telefonkészüléket! • Kezdje elölről a folyamatot • egyébként • Dobjon be egy 50 Ft-ost! • Tárcsázzon! • Vége

  8. Ismételt, feltételtől függő végrehajtás • Példa egy másik algoritmusra: • Szörpautomata használati algoritmusa: • Válaszd ki a megfelelő szörpöt! • Dobj be egy 100 Ft-ost! • Nyomd meg a kívánt szörphöz tartozó gombot! • Ismételd amíg nem telik meg a pohár: Nézd a poharat! • Vedd ki a poharat! • Idd meg a szörpöt! • Vége

  9. Az algoritmizálás alapjai • Az algoritmusok 3 alapvető műveletből épülnek fel: • szekvenciák (utasítások egymás utánisága) • iterációk más néven ciklusok (utasítások ismétlődése) • szelekciók (az algoritmus feltételtől függő elágaztatása)

  10. A program • Egy számítógép által érthető nyelven írt algoritmust programnak nevezünk.

  11. Az algoritmus tervezése • Meg kell fogalmazni, hogy pontosan mit kíván a feladat, azaz milyen adat(ok)ból mi(ke)t, s milyen összefüggés alapján kell kiszámolni. Ezt a pontos, precíz megfogalmazást hívják specifikációnak. • Az algoritmus áttekinthető formában való leírására számtalan eszköz létezik: • Folyamatábra • Stuktogram • Jackson-féle jelölés • Leírás fával • Leírás mondatszerű elemekkel

  12. Algoritmus leíró eszközök • Folyamatábra: • A programot gráfként írja le. A programgráf egy irányított gráf, amely a csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az induló élből bármely csomópont elérhető. A folyamatábra három féle csomópontot tartalmaz: • utasítás csomópont • döntés csomópont • gyűjtő csomópont. • Ez az algoritmus leíró eszköz jól használható az algoritmusok végrehajtásának követésére. • Hátrányai: terjedelmes, szövegszerkesztővel nehezen készíthető, javítása rendkívül nehézkes.

  13. Folyamatábra • Utasítás csomópont • Döntés csomópont • Gyűjtő csomópont Utasítás Igaz Hamis

  14. Folyamatábra Emelje fel a kézibeszélőt Van búgó hang? Várja meg a tárcsahangot Igaz Hamis Keressen egy másik telefonkészüléket! Dobjon be egy 50 Ft-ost! Tárcsázzon! Vége

  15. Algoritmus leíró eszközök • Stuktogram: • Az eszköz a folyamatábra hibáit próbálja meg kiküszöbölni azzal, hogy a programgráfot élek nélkül ábrázolja, így egyetlen egy alapelem marad a téglalap. Az eszköz csak struktúrált programok írására alkalmas, rajzossága miatt terjedelmes, nehezen javítható és nehezen „olvasható”.

  16. Stuktogram Utasítás Szekvencia: Utasítás Feltétel Igen Nem Szelekció: Utasítás Utasítás Feltétel Iteráció: Utasítás(ok)

  17. Algoritmus leíró eszközök • Jackson diagram: • Ez az eszköz az adat- és algoritmikus szerkezetek leírására egységes ábrakészletet definiál.Az új eszköz egyértelmű előnye az algoritmus- és adatleírás egységessége, áttekinthetősége azonban az eddigieknél is rosszabb.

  18. Jackson diagram A Szekvencia: B C A Szelekció: F B C A Iteráció: F * C

  19. Algoritmus leíró eszközök • Leírás fával: • Ez a leíró eszköz a programgráfot és-vagy-fával írja le. A fa ciklust nem tartalmaz, a ciklusokat rekurzívan írhatjuk le. Az eszköz az eddigieknél szélesebb alkalmazási lehetőségű, áttekinthetősége viszont továbbra is rossz.

  20. Algoritmus leíró eszközök • Leírás mondatokkal: • Sorszámozott utasítású programozási nyelvekhez (pl.: BASIC) illeszkedik ez az eszköz. Utasításai sorszámozott mondatok. Ennél az eszköznél a követést a sorszámok biztosítják. Nehezen áttekinthető, olvasható sok hátrányos tulajdonsága van.

  21. Leírás mondatokkal 1. Emelje fel a kézibeszélőt 2. Várja meg a tárcsahangot 3. Ha van búgó hang, akkor folytasd az 5. soron! 4. Keressen egy másik telefonkészüléket! Folytasd a 7. soron! 5. Dobjon be egy 50 Ft-ost! 6. Tárcsázzon! 7. Vége

  22. Algoritmus leíró eszközök • Leírás mondat-szerű elemekkel: • Elemei nem teljes mondatok, mondat szerű elemek. Struktúrái megfelelnek a szokásos Neumann elvű programozási nyelv struktúráknak, kódolása egyszerű.

  23. Algoritmus tervezése • Az algoritmus tervezésének alapja a dekompozíció: A feladatot részekre kell bontani, a részeket meg kell oldani, majd a megoldott részeket kell összeállítani, hogy együtt működhessenek. A részekre bontásnál két irányzatot különböztetünk meg: • Felülről lefelé, fokozatosan, lépésenként finomítással. (Top-down módszer) • Alulról felfelé (bottom-up) módszer, ahol a kisebb feladatok megoldásával kezdjük, majd azután gondolkodunk az összeállítás struktúráján.

  24. Algoritmus tervezése • A felülről lefelé való programtervezés irányelvei: • Oszd meg és uralkodj elv: a lebontott részek egymástól függetlenek legyenek • Adatok elrejtésének elve: a megfelelő program részek csak saját adataikon dolgozzanak • Döntések elhalasztásának elve: azokat a döntéseket, melyekhez nincs elég ismeretünk halasszuk későbbre. • Döntések kimondásának elve: ha már meghoztunk egy döntést, meg kell fogalmazni, le kell rögzíteni, nehogy később erről megfeledkezve ellentmondásba keveredjünk.

  25. Algoritmus tervezése • Az alulról felfelé tervezés lényege: • Már meglévő programrészeket építünk programunkba. Erre akkor kerül sor, ha bizonyos részfeladatokat már megcsináltunk, vagy amikor megvásárolunk egy rutingyűjteményt.

  26. Objektumorientált szemléletmód • Az algoritmust végrehajtó programot a tervezés során jól elkülöníthető modulokra kell bontani, • A modulok külön-külön jól definiált feladatot látnak el, így könnyen változtathatók, karbantarthatók, védettek, könnyen összeépíthetők és újrafelhasználhatók lesznek. • A megvalósításhoz a modulokon belül erős összetartás, a modulok között laza kapcsolat elvét kell követni

  27. Modulok az objektumorientált rendszerben Adat Eljárás Eljárás Adat Eljárás Adat Adat Adat Eljárás Eljárás Adat Eljárás

  28. Objektumorientált szemléletmód • Egy objektumorientált programban a legkisebb modul az objektum, melyben adatok és az eljárások össze vannak zárva. • Minden objektumnak megvan a jól meghatározott feladata. • A program működése során az objektumok egymással kommunikálva végzik a rájuk bízott feladatot • Egy objektumorientált rendszer tervezésekor a feladatspecifikáció alapján meg kell határozni a rendszerben szereplő objektumokat, és az objektumok között szét kell osztani a feladatokat.

  29. Objektumorientált szemléletmóddal kapcsolatos fogalmak • Felelősség: minden objektumnak megvan a jól meghatározott feladata. Az objektum felelős a feladatai elvégzéséért. • Bezárás, információ elrejtése: a feladatok elvégzésének hogyanja az objektum belügye. Az objektum belseje sérthetetlen. • Polimorfizmus, többalakúság: ugyanarra a kérelemre a különböző objektumok különbözőképpen reagálnak.

  30. Objektumorientált szemléletmóddal kapcsolatos fogalmak • Osztályozás: az objektum példányokat viselkedésük szerint osztályokba soroljuk. • Öröklődés: egy osztály örökölhet tulajdonságokat és viselkedésformákat egy másik osztálytól. Az utód osztályban csak az ős osztálytól való eltéréseket kell megadni. • Futás alatti kötés: bizonyos operációkról csak futáskor lehet kideríteni, hogy konkrétean melyikre van szükség. Ezek az operációk később kötődnek a programhoz.

  31. Példa objektum öröklődésre Ember NévSzületési év Ős osztály Tanul Beszél Hallgató Oktató TanfolyamszámEredmény TanszékFizetés Utód osztályok Tanul Tanít Beszél

  32. Vége

More Related