Programozás és Digitális Tecnikák II. - Timotei István Erdei & Zsolt Molnár
1. Programozás és Digitális
Technika I.
2. Hét
Programozás alapjai,
Bevezetés a programozásba
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
2. Tartalom
• Programozási feladatok megoldásának lépései
• Programírás utáni teendők
• Mi az algoritmus?
• Komplexebb algoritmusok
• Felhasznált források
2Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
3. Programozási feladatok megoldásának lépései
1. Feladat specifikációjának az elkészítése – különös figyelmet igényel,
legtöbbször elmarad lassul a feladatmegoldás folyamata
2. A feladat ismeretében a felhasznált eszközök, módszerek meghatározása
3. Feladat megoldásának megtervezése majd ALGORITMIZÁLÁSA
3Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
4. Programírás utáni teendők
1. Megoldás helyes működésének az ellenőrzése / hibák javítása
2. A program egy termék használati utasítás / DOKUMENTÁCIÓ készítése
4
ALGORITMUS KÉSZÍTÉSE
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
5. Mi az algoritmus?
• Mit nevezünk algoritmusnak?
• Milyen jellemzői vannak?
• Hogyan kell ilyen készíteni?
5
Egyszerű példa ALGORITMUSRA:
utcai telefonkészülék használata
Telefonhasználat:
Emelje le a kézibeszélőt!
Várja meg a tárcsahangot!
Dobjon be egy 5 Ft-ost!
Tárcsázzon!
Vége.
Kérdések:
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
6. Mi az algoritmus?
• Az említett példa egy ALGORITMUS
• A telefonkészülék formai leírása NEM algoritmus, bár az is a „telefonról szól”
6
Ezek alapján az ALGORITMUS jellemzői a következők:
1. Végrehajtható
2. Lépésekre bontva hajtható végre
3. Minden lépés vagy Elemi Utasítás vagy További Algoritmus
4. Pontosnak kell lennie meghatározott Végrehajtási Sorrenddel
5. Véges a Leírás (bár a végrehajtása korántsem mindig véges)
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
7. Mi az algoritmus?
7
1. Lehet hozzá végrehajtót (egy valakit, egy gépet, egy processzort stb.)
rendelni, akinek a nyelvén szól az algoritmus
2. Világos a végrehajtó számára, hogy mit tekintsen lépésnek (a neki szóló
„mondat” egy „szavának”)
3. Elemi az, aminek értelme felöl nincs kétsége a végrehajtónak. Ha egy lépés
nem egyértelmű, akkor azt tovább kell részletezni, részlépésekre bontani. A
felbontást mindaddig kell folytatni, amíg a végrehajtásban csak elemi vagyis
alapszavakkal kell megbirkóznia a végrehajtónak
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
8. Mi az algoritmus?
8
4. Nemcsak az egyes lépések önálló jelentése kell, hogy tiszta legyen, hanem az
is, hogy melyiket mikor kell / lehet elvégezni. Ez által lesz az egész algoritmus
teljes és pontos
5. Ez azt jelenti, hogy előadódhatnak olyan helyzetek, amikor a végesen
megfogalmazott parancssorozat precíz végrehajtása esetén soha nem ér
véget – a programok tesztelésekor ezek megmutatkozhatnak és ezáltal ezek a
helyzetek speciális esetekként kezelhetőek
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
9. Komplexebb algoritmusok
9
Előző (telefonos) példa:
• Elemi tevékenység
• Mindegyik utasítást végre
kellett hajtani
• Adott végrehajtási sorrend
Szörpautomata példa:
• Vizsgáljuk, hogy elemi lépéseket
hogyan, milyen sorrendben lehet
végrehajtani
• Újdonság: elemi tevékenység
TÖBBSZÖRI végrehajtása
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
10. Komplexebb algoritmusok
10
Szörpautomata példa 1:
Szörpautomata_1:
Válaszd ki a megfelelő szörpöt!
Dobj be egy 10 Ft-ost!
Nyomd meg a kiválasztott szörphöz tartozó gombot!
ISMÉTELD AMÍG nem telik meg a pohár: Nézd a poharat!
Vedd ki a poharat!
Vége.
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
11. Komplexebb algoritmusok
11
Szörpautomata példa 1:
• A végrehajtás számát egy feltételtől tettük függővé – addig kell várni, amíg
megtelik a pohár
• Az egymás után végrehajtandó elemi tevékenységek is különbözőek: pl.: „Vedd
ki a poharat!” és „Idd meg a szörpöt!” tevékenységek sorrendje kötött
• A „Válaszd ki a megfelelő szörpöt!” és a „Dobj be egy 10 Ft-ost!”
tevékenységek sorrendje tetszőleges, sőt akár egyszerre is végezhetjük őket
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
12. Komplexebb algoritmusok
12
Algoritmusokban a végrehajtási sorrend lehet:
1. Adott sorrendben, egymás után
2. Tetszőleges sorrendben, egymás után
3. Párhuzamosan, egyszerre
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
13. Komplexebb algoritmusok
13
Szörpautomata példa 2:
• Továbbgondolva az előző példát, tegyük fel, hogy nincs 10 Ft-osunk és az
automata elfogad 2 Ft-os érméket is
• Újdonságként bekerül az algoritmusba a választás lehetősége, vagyis ha
van 5 darab 2 Ft-os érménk, akkor azzal fizetünk, ha nincs, akkor 10 Ft-os
érmével
• Abban az esetben, ha mindkét fizetési mód rendelkezésünkre áll, akkor
választhatunk
• A példaalgoritmus a következő dián látható
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
14. Komplexebb algoritmusok
14
Szörpautomata példa 2:
Szörpautomata_2:
Válaszd ki a megfelelő szörpöt!
HA van 5 db 2 Ft-osod AKKOR Dobj be 5 db 2 Ft-ost!
KÜLÖNBEN Dobj be egy 10 Ft-ost!
Nyomd meg a kiválasztott szörphöz tartozó gombot!
ISMÉTELD AMÍG folyik a szörp: Nézd a poharat!
Vedd ki a poharat!
Vége.
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
15. Komplexebb algoritmusok
15
Szörpautomata példa 3:
• Mi van akkor, ha bizonyos lépések végrehajtását feltételekhez kötjük?
• Példának okáért tegyük fel, hogy az automata nem ad szörpöt. Ekkor egy
kisebb ütés hatására a probléma megszűnhet, ha mégse, akkor ezt meg kell
ismételni
• Természetesen a fenti problémamegoldás a Valós életben NEM
alkalmazható
• A példaalgoritmus a következő dián látható
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
16. Komplexebb algoritmusok
16
Szörpautomata példa 3:
Szörpautomata_3:
Válaszd ki a megfelelő szörpöt!
HA van 5 db 2 Ft-osod AKKOR Dobj be 5 db 2 Ft-ost!
KÜLÖNBEN Dobj be egy 10 Ft-ost!
Nyomd meg a kiválasztott szörphöz tartozó gombot!
HA nem folyik a pohárba a szörp AKKOR
ISMÉTELD: üsd az automata oldalát AMÍG nem folyik a szörp!
ISMÉTELD AMÍG folyik a szörp: Nézd a poharat!
Vedd ki a poharat!
Vége.
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
17. Komplexebb algoritmusok
17
Miként bonthatjuk komplexebb algoritmusainkat elemibbekre?
1. Az összetett algoritmus több elemibb algoritmusból áll, és mindegyiket végre
kell hajtani:
a) A végrehajtási sorrend adott, és egyszerre csak egyet lehet
végrehajtani
b) A végrehajtási sorrend tetszőleges, és egyszerre csak egyet lehet
végrehajtani
c) A végrehajtási sorrend tetszőleges, akár egyszerre is végre lehet
hajtani az összeset
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
18. Komplexebb algoritmusok
18
Miként bonthatjuk komplexebb algoritmusainkat elemibbekre?
2. Az összetett algoritmus egy vagy több elemi algoritmusból áll, és ezek közül
csak legfeljebb az egyiket kell végrehajtani:
a) 1 elemi algoritmust vagy végrehajtunk vagy nem
b) 2 elemi algoritmus közül egyértelműen választanunk kell az egyiket
c) Sok elemi algoritmus közül egyértelműen választanunk kell az
egyiket
d) Sok elemi algoritmus közül választanunk kell az egyiket, de a
választás nem egyértelműen definiált
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
19. Komplexebb algoritmusok
19
Miként bonthatjuk komplexebb algoritmusainkat elemibbekre?
3. Az összetett algoritmus 1 elemi algoritmus ismétléséből áll:
a) Tudjuk, hogy pontosan hányszor kell végrehajtani
b) Tudunk mondani egy feltételt, aminek teljesülése esetén még végre
kell hajtani
c) Tudunk mondani egy feltételt, aminek teljesülése esetén még végre
kell hajtani, de a feltétel vizsgálatához az ismétlendőt egyszer már
végre kell hajtani, azaz legalább egyszer „lefut” az ismétlendő
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
20. Komplexebb algoritmusok
20
• Minden számítógépes feladatmegoldásnak az alapjai:
1. MIBŐL lehet kiindulni?
2. MIT kell kiszámolni?
3. MILYEN eredményhez kell eljutni?
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
21. Komplexebb algoritmusok
21
• Ennek szemléltetésére egy újabb példával, a szódavíz-készítésével
fogunk megismerkedni. Ennek elemei:
1. MIBŐL (bemeneti adat): víz, patron
2. MIT (feldolgozás): szódavízkészítés
3. MILYEN (kimeneti adat): szódavíz
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
22. Komplexebb algoritmusok
22
• A szódavíz-készítés algoritmusa a következőképpen néz ki:
Szódavíz-készítése:
Csavard szét a szifont!
Öntsd bele a vizet!
Csavard össze a szifont!
Csavard rá a teli patront!
Vége.
• Bemeneti kellékek: víz, patron
• „Adottság”: szifon
• Kimeneti kellék: szódavíz
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI
23. Felhasznált források
23
• Szlávi Péter – Zsakó László: „Módszeres programozás: Programozási bevezető”
• Ábrák, képek: Google képkereső
Oktató: Erdei Timotei István Készítette: Molnár Zsolt & ETI