Informatika Előadás

32
Informatika Előadás Algoritmusok Tusnádi István

description

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

Transcript of Informatika Előadás

Page 1: Informatika Előadás

Informatika ElőadásAlgoritmusok

Tusnádi István

Page 2: Informatika Előadás

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

Page 3: Informatika Előadás

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

Page 4: Informatika Előadás

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)

Page 5: Informatika Előadás

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

Page 6: Informatika Előadás

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

Page 7: Informatika Előadás

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éntDobjon be egy 50 Ft-ost!Tárcsázzon!Vége

Page 8: Informatika Előadás

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

Page 9: Informatika Előadás

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)

Page 10: Informatika Előadás

A program

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

Page 11: Informatika Előadás

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

Page 12: Informatika Előadás

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.

Page 13: Informatika Előadás

Folyamatábra

Utasítás csomópont

Döntés csomópont

Gyűjtő csomópont

Igaz Hamis

Utasítás

Page 14: Informatika Előadás

Folyamatábra

Igaz Hamis

Emelje fel a kézibeszélőt

Várja meg a tárcsahangot

Keressen egy másik telefonkészüléket!

Vége

Dobjon be egy 50 Ft-ost!

Tárcsázzon!

Van búgó hang?

Page 15: Informatika Előadás

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ó”.

Page 16: Informatika Előadás

Stuktogram

Szekvencia:Utasítás

Utasítás

FeltételNemIgen

Utasítás Utasítás

Szelekció:

Iteráció: Feltétel

Utasítás(ok)

Page 17: Informatika Előadás

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.

Page 18: Informatika Előadás

Jackson diagramA

CB

A

CB

A

C

Szekvencia:

Szelekció:

Iteráció: F

*

F

Page 19: Informatika Előadás

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.

Page 20: Informatika Előadás

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.

Page 21: Informatika Előadás

Leírás mondatokkal

1. Emelje fel a kézibeszélőt2. Várja meg a tárcsahangot3. 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

Page 22: Informatika Előadás

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ű.

Page 23: Informatika Előadás

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.

Page 24: Informatika Előadás

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.

Page 25: Informatika Előadás

Algoritmus tervezéseAz 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.

Page 26: Informatika Előadás

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

Page 27: Informatika Előadás

Modulok az objektumorientált rendszerben

Adat Eljárás

Adat

Adat

AdatAdat

Adat

Eljárás

Eljárás

Eljárás

Eljárás

Eljárás

Page 28: Informatika Előadás

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.

Page 29: Informatika Előadás

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.

Page 30: Informatika Előadás

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.

Page 31: Informatika Előadás

Példa objektum öröklődésreEmber

NévSzületési évTanulBeszél

Oktató

TanszékFizetés

TanítBeszél

Hallgató

TanfolyamszámEredmény

Tanul

Ős osztály

Utód osztályok

Page 32: Informatika Előadás

Vége