informatika előadás
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 PresentationTRANSCRIPT
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