informatika előadás

Download Informatika Előadás

If you can't read please download the document

Upload: jace

Post on 07-Jan-2016

17 views

Category:

Documents


1 download

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

Informatika Elads Vzlat

Informatika Elads
Algoritmusok

Tusndi Istvn

Az algoritmus defincija
Azon egyrtelm instrukcik halmazt, mely egy konkrt feladat vges szm lpsben trtn megoldshoz vezet, algoritmusnak nevezzk

Az algoritmizlhatsg felttelei
Lpsekre bontott vgrehajthat folyamatMinden lps egy elemi utasts vagy felbonthat elemi utastsokraMeghatrozott a vgrehajtsi sorrendVges a lers

Az algoritmus mveletei
szekvencik (utastsok egyms utnisga)itercik ms nven ciklusok (utastsok ismtldse)szelekcik (az algoritmus feltteltl fgg elgaztatsa)

Az algoritmizls alapjai
Az algoritmus lpsekbl ll. Minden lpsnek egyrtelmen vgrehajthatnak kell lennie.A vgrehajtand instrukciknak valamilyen clja van.Az algoritmusnak vannak bemen adatai melyeket felhasznl.Az algoritmusnak legalbb egy kimen adatot produklnia kell.Az algoritmus vges szm lpsben megoldhatnak kell lennie.Az algoritmus legyen hatkony s felhasznl bart

Egyms utni utastsok
Htkznapi letbl vett algoritmus:Utcai telefonkszlk hasznlatnak algoritmusaEmelje fel a kzibeszltVrja meg a trcsahangotHa van trcsahang, akkorDobjon be egy 50 Ft-ost! Trcszzon!Vge

Feltteltl fgg elgaztats
Az elbbi plda finomtsa:Utcai telefonkszlk hasznlatnak algoritmusaEmelje fel a kzibeszltVrja meg a trcsahangotHa nincs bg hang, akkorKeressen egy msik telefonkszlket!Kezdje ellrl a folyamatotegybkntDobjon be egy 50 Ft-ost!Trcszzon!Vge

Ismtelt, feltteltl fgg vgrehajts
Plda egy msik algoritmusra:Szrpautomata hasznlati algoritmusa:Vlaszd ki a megfelel szrpt!Dobj be egy 100 Ft-ost!Nyomd meg a kvnt szrphz tartoz gombot!Ismteld amg nem telik meg a pohr: Nzd a poharat!Vedd ki a poharat!Idd meg a szrpt!Vge

Az algoritmizls alapjai
Az algoritmusok 3 alapvet mveletbl plnek fel: szekvencik (utastsok egyms utnisga)itercik ms nven ciklusok (utastsok ismtldse)szelekcik (az algoritmus feltteltl fgg elgaztatsa)

A program
Egy szmtgp ltal rthet nyelven rt algoritmust programnak neveznk.

Az algoritmus tervezse
Meg kell fogalmazni, hogy pontosan mit kvn a feladat, azaz milyen adat(ok)bl mi(ke)t, s milyen sszefggs alapjn kell kiszmolni. Ezt a pontos, precz megfogalmazst hvjk specifikcinak.Az algoritmus ttekinthet formban val lersra szmtalan eszkz ltezik:FolyamatbraStuktogramJackson-fle jellsLers fvalLers mondatszer elemekkel

Algoritmus ler eszkzk
Folyamatbra: A programot grfknt rja le. A programgrf egy irnytott grf, amely a csompontokbl s ket sszekt lekbl ll, egyetlen indul s befejez le van, az indul lbl brmely csompont elrhet. A folyamatbra hrom fle csompontot tartalmaz: utasts csompontdnts csompontgyjt csompont. Ez az algoritmus ler eszkz jl hasznlhat az algoritmusok vgrehajtsnak kvetsre. Htrnyai: terjedelmes, szvegszerkesztvel nehezen kszthet, javtsa rendkvl nehzkes.

Folyamatbra
Utasts csompont

Dnts csompont

Gyjt csompont
Igaz
Hamis
Utasts

Folyamatbra
Igaz
Hamis
Emelje fel a kzibeszlt
Vrja meg a trcsahangot
Keressen egy msik telefonkszlket!
Vge
Dobjon be egy 50 Ft-ost!
Trcszzon!
Van bg hang?

Algoritmus ler eszkzk
Stuktogram: Az eszkz a folyamatbra hibit prblja meg kikszblni azzal, hogy a programgrfot lek nlkl brzolja, gy egyetlen egy alapelem marad a tglalap. Az eszkz csak struktrlt programok rsra alkalmas, rajzossga miatt terjedelmes, nehezen javthat s nehezen olvashat.

Stuktogram
Szekvencia:
Utasts
Utasts
Felttel
Nem
Igen
Utasts
Utasts
Szelekci:
Iterci:
Felttel
Utasts(ok)

Algoritmus ler eszkzk
Jackson diagram:Ez az eszkz az adat- s algoritmikus szerkezetek lersra egysges brakszletet definil. Az j eszkz egyrtelm elnye az algoritmus- s adatlers egysgessge, ttekinthetsge azonban az eddigieknl is rosszabb.

Jackson diagram
A
C
B
A
C
B
A
C
Szekvencia:
Szelekci:
Iterci:
F
*
F

Algoritmus ler eszkzk
Lers fval: Ez a ler eszkz a programgrfot s-vagy-fval rja le. A fa ciklust nem tartalmaz, a ciklusokat rekurzvan rhatjuk le. Az eszkz az eddigieknl szlesebb alkalmazsi lehetsg, ttekinthetsge viszont tovbbra is rossz.

Algoritmus ler eszkzk
Lers mondatokkal: Sorszmozott utasts programozsi nyelvekhez (pl.: BASIC) illeszkedik ez az eszkz. Utastsai sorszmozott mondatok. Ennl az eszkznl a kvetst a sorszmok biztostjk. Nehezen ttekinthet, olvashat sok htrnyos tulajdonsga van.

Lers mondatokkal
1. Emelje fel a kzibeszlt2. Vrja meg a trcsahangot3. Ha van bg hang, akkor folytasd az 5. soron!4. Keressen egy msik telefonkszlket! Folytasd a 7. soron!5. Dobjon be egy 50 Ft-ost!6. Trcszzon!7. Vge

Algoritmus ler eszkzk
Lers mondat-szer elemekkel: Elemei nem teljes mondatok, mondat szer elemek. Struktri megfelelnek a szoksos Neumann elv programozsi nyelv struktrknak, kdolsa egyszer.

Algoritmus tervezse
Az algoritmus tervezsnek alapja a dekompozci: A feladatot rszekre kell bontani, a rszeket meg kell oldani, majd a megoldott rszeket kell sszelltani, hogy egytt mkdhessenek. A rszekre bontsnl kt irnyzatot klnbztetnk meg:Fellrl lefel, fokozatosan, lpsenknt finomtssal. (Top-down mdszer)Alulrl felfel (bottom-up) mdszer, ahol a kisebb feladatok megoldsval kezdjk, majd azutn gondolkodunk az sszellts struktrjn.

Algoritmus tervezse
A fellrl lefel val programtervezs irnyelvei:Oszd meg s uralkodj elv: a lebontott rszek egymstl fggetlenek legyenekAdatok elrejtsnek elve: a megfelel program rszek csak sajt adataikon dolgozzanakDntsek elhalasztsnak elve: azokat a dntseket, melyekhez nincs elg ismeretnk halasszuk ksbbre.Dntsek kimondsnak elve: ha mr meghoztunk egy dntst, meg kell fogalmazni, le kell rgzteni, nehogy ksbb errl megfeledkezve ellentmondsba keveredjnk.

Algoritmus tervezse
Az alulrl felfel tervezs lnyege:Mr meglv programrszeket ptnk programunkba. Erre akkor kerl sor, ha bizonyos rszfeladatokat mr megcsinltunk, vagy amikor megvsrolunk egy rutingyjtemnyt.

Objektumorientlt szemlletmd
Az algoritmust vgrehajt programot a tervezs sorn jl elklnthet modulokra kell bontani, A modulok kln-kln jl definilt feladatot ltnak el, gy knnyen vltoztathatk, karbantarthatk, vdettek, knnyen sszepthetk s jrafelhasznlhatk lesznek.A megvalstshoz a modulokon bell ers sszetarts, a modulok kztt laza kapcsolat elvt kell kvetni

Modulok az objektumorientlt rendszerben
Adat
Eljrs
Adat
Adat
Adat
Adat
Adat
Eljrs
Eljrs
Eljrs
Eljrs
Eljrs

Objektumorientlt szemlletmd
Egy objektumorientlt programban a legkisebb modul az objektum, melyben adatok s az eljrsok ssze vannak zrva. Minden objektumnak megvan a jl meghatrozott feladata.A program mkdse sorn az objektumok egymssal kommuniklva vgzik a rjuk bzott feladatotEgy objektumorientlt rendszer tervezsekor a feladatspecifikci alapjn meg kell hatrozni a rendszerben szerepl objektumokat, s az objektumok kztt szt kell osztani a feladatokat.

Objektumorientlt szemlletmddal kapcsolatos fogalmak
Felelssg: minden objektumnak megvan a jl meghatrozott feladata. Az objektum felels a feladatai elvgzsrt.Bezrs, informci elrejtse: a feladatok elvgzsnek hogyanja az objektum belgye. Az objektum belseje srthetetlen.Polimorfizmus, tbbalaksg: ugyanarra a krelemre a klnbz objektumok klnbzkppen reaglnak.

Objektumorientlt szemlletmddal kapcsolatos fogalmak
Osztlyozs: az objektum pldnyokat viselkedsk szerint osztlyokba soroljuk.rklds: egy osztly rklhet tulajdonsgokat s viselkedsformkat egy msik osztlytl. Az utd osztlyban csak az s osztlytl val eltrseket kell megadni.Futs alatti kts: bizonyos opercikrl csak futskor lehet kiderteni, hogy konkrtean melyikre van szksg. Ezek az opercik ksbb ktdnek a programhoz.

Plda objektum rkldsre
Ember
Nv Szletsi v
TanulBeszl
Oktat
Tanszk Fizets
TantBeszl
Hallgat
Tanfolyamszm Eredmny
Tanul
s osztly
Utd osztlyok

Vge