Bevezetés a programozásba - Az algoritmusok leírása

Slides:



Advertisements
Hasonló előadás
Az algoritmus.
Advertisements

Programozási feladatok
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Algoritmusok.
Adatelemzés számítógéppel
Algoritmusleíró eszközök
Hatékonyságvizsgálat, dokumentálás
2006. december 2.Markó Tamás, PTE TTK1 Az Oracle SQL 15. Hangolás.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
3. A programozás eszközei, programozás-technikai alapismeretek
Algoritmus Az algoritmus problémamegoldásra szolgáló elemi lépések olyan sorozata, amely: véges – azaz véges számú lépés után befejeződik, és eredményt.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Programozási alapismeretek 1. előadás
Programozás alapjai.
Algoritmusok Az algoritmus fogalma:
Programozás módszertan
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Algoritmusok Tusnádi István
2006. október 9.Markó Tamás, PTE TTK1 Az Oracle SQL 7. Kényszerek megadása. Indexek kezelése.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 4. Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
2005. december 12.Markó Tamás, PTE TTK1 Az Oracle SQL 11. Elemzések támogatása.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
Programozó matematikus szak 2003/2004-es tanév II. félév
Programozás I. Ciklusok
ISZAM III.évf. részére Bunkóczi László
Komplex rendszertervezési módszerek
A problémamegoldás lépései
Ismétlő struktúrák.
Az algoritmusok áttekinthető formában történő leírására szolgáló eszközök Páll Boglárka.
Algoritmusok.
ALGORITMUS.
Algoritmusok.
ismétlődő (azonos vagy hasonló) tevékenységek megvalósítására szolgál
ALGORITMUSOK.
Ciklusok (iterációk).
Szintaktikai, szemantikai szabályok
Programozási nyelvek.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Objektumorientált programozás
Algoritmusok.
Algoritmus szerkezetek
2006. október 30.Markó Tamás, PTE TTK1 Az Oracle SQL 9. Triggerek és tárolt eljárások. Kliens oldali programok.
Algoritmusok.
Az algoritmuskészítés alapjai
Funkciós blokkok A funkciós blokkok áttekintése Az alkalmazás előnyei.
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Algoritmusok. Az algoritmus meghatározott sorrendben elvégzendő műveletek előírása, mint azonos típusú (matematikai, logikai) feladatok megoldására alkalmas.
Algoritmizálás és programozás tanítása Balogh Zoltán PTE-TTK IÁTT Az algoritmuskészítés.
Összeállította: Sashalmi Tibor
Algoritmizálás, adatmodellezés
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Strukturált programozás.  A strukturált programozás jelenti valamennyi ma használatos programtervezési módszer alapját  Széles körben elfogadott az.
kialakulása, fejlődése, generációk
Programozási nyelvek csoportosítása.
Programozás alapjai Készítette: Csiszár Nóra Anita
Algoritmusok Tusnádi István
Programozási alapok.
Algoritmizálás.
Bevezetés a programozásba Algoritmikus gondolkodás
Algoritmusok Az algoritmus fogalma:
Számítógépes algoritmusok
Algoritmusok szerkezete
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Előadás másolata:

Bevezetés a programozásba - Az algoritmusok leírása Markó Tamás PTE TTK, 2003 2003.09.12. Markó Tamás, PTE TTK

A rádiótelefonokat kérem KIKAPCSOLNI! 2003.09.12. Markó Tamás, PTE TTK

Az algoritmus 1. Neumann-elv: a számítógép egy utasítást hajt végre egyszerre  a megoldandó feladatot egymás után végrehajtandó utasítások sorozatára kell bontani A szó eredete: Muhammed ibn Muza al-Khwarizmi középkori arab matematikus nevéből. 825-ben megjelen könyvének címéből (Hiszab al-dzsebr w‘al mukabalah, Rövidítések és törlések könyve) származik az algebra szó. 2003.09.12. Markó Tamás, PTE TTK

Az algoritmus 2. Algoritmus: egy probléma megoldására szolgáló lépések részletes és egyértelmű megadása. Részletesebben: az algoritmus végrehajtása időben egymás utáni diszkrét lépésekben történik minden lépés egyetlen egyszerű és nyilvánvaló alaptevékenységből áll minden lépés után el kell tudni dönteni, hogy melyik a következőként végrehajtandó lépés, illetve hogy befejeztük-e az eljárást

Az algoritmus 3. A gyakorlatban használható algoritmusok véges számú lépés után befejeződnek olyan kevés lépés után (olyan rövid idő alatt) fejeződnek be, hogy az eredmény még érdekes (Érdektelen pl. egy olyan időjárás-előrejelzési módszer, ahol a másnapi időjárás előrejelzése két napi munkába kerül.) Elméleti (matematikai) elemzésük: algoritmuselmélet számításelmélet 2003.09.12. Markó Tamás, PTE TTK

A specifikáció Specifikáció: egy probléma teljes, részletes és egyértelmű leírása Teljes: adott az összes követelmény adott az összes - a probléma szempontjából érdekes - környezeti feltétel (peremfeltétel) Részletes: egyértelműek a használható eszközök (pl. a végrehajtható műveletek) Egyértelmű: világos kritériumok vannak arra, hogy egy megoldás mikor elfogadott

A specifikáció - példa 1 2 3 A B M C Egy kocsirendezési feladat „specifikációja”: Az M mozdony az A vágányszakaszon álló 1, 2, 3 jelzésű kocsikat állítsa a C vágányszakaszra 3, 1, 2 sorrendben. Teljes? Hány kocsit tud a mozdony egyszerre húzni? Hány kocsi fér el a B vágányszakaszon? Részletes? Milyen tevékenységekre képes a mozdony? (pl. tud mozogni, összekapcsolódni, szétkapcsolódni) Egyértelmű? Állhat-e az átrendezés után a mozdony a kocsik között is? 2003.09.12. Markó Tamás, PTE TTK

Az algoritmusok leírása Sokfajta módszer létezik Ismertebbek: Folyamatábra Struktogramm Jackson-ábra Pszeudokód UML (Universal Modeling Language) 2003.09.12. Markó Tamás, PTE TTK

A folyamatábra - a szükséges szimbólumok A Neumann-elvekből fakad: A tevékenységsorozat eleje: A tevékenységsorozat vége: Elemi tevékenység: A következő tevékenység jelzése: Feltételtől függő elágazás: Technikailag szükséges: Az ábra folytatásának jelzése: START STOP x := x + 1 i=1 i=1 1 2003.09.12. Markó Tamás, PTE TTK

A folyamatábra - néhány kiegészítő szimbólum Speciális tevékenységek: eljáráshívás: adatbevitel / -kivitel: Speciális adatbevitel / -kivitel: nyomtatóra: képernyőre: mágeslemezre / -ről: SZÁMLA be: név 2003.09.12. Markó Tamás, PTE TTK

Folyamatábra - példa Az euklideszi algoritmus (két szám legnagyobb közös osztójának meghatározása): START x := M y := N i n x = y i n x > y z := x STOP x := x - y y := y - x 2003.09.12. Markó Tamás, PTE TTK

A folyamatábra értékelése Előnyök: szemléletes a kívülállóknak is azonnal érthető Hátrányok: igen terjedelmes és kusza lehet nem támogatja a struktúrált programozást: nincs külön szimbólum a ciklusokra a nyilak bárhova mutathatnak Nagy rendszerek részletes leírására nem alkalmas 2003.09.12. Markó Tamás, PTE TTK

A struktogramm 1. Egyetlen, felülről lefelé olvasandó téglalap Elemi tevékenység: Szekvencia: Elágazások: kétirányú: többirányú: x := M x := M y := N x > y x := x - y y := y - x diszkrimináns > 0 = 0 < 0 Két gyök Egy gyök Nincs megoldás 2003.09.12.

A struktogramm 2. Ciklusok elöltesztelő: hátultesztelő: számlálós: feltétel ciklusmag ciklusmag feltétel i = 1, 10, 2 ciklusmag 2003.09.12. Markó Tamás, PTE TTK

Struktogramm - példa Az euklideszi algoritmus (két szám legnagyobb közös osztójának meghatározása): START x := M y := N x  y x > y x := x - y y := y - x z = x VÉGE 2003.09.12. Markó Tamás, PTE TTK

A struktogramm értékelése Előnyök: a korszerű magasszintű nyelvek vezérlőszerkezeteinek szemléletes támogatása Hátrányok: igen terjedelmes lehet a befoglaló téglalap megrajzolásánál meg kell becsülni a belső objektumok méretét Ritkán alkalmazzák 2003.09.12. Markó Tamás, PTE TTK

A pszeudokód A tevékenység leírása köznapi nyelven, röviden Az egyes tevékenységek és a vezérlőszerkezetek hierarchiája behúzásokkal érzékeltethető (mint a Pascal esetében) Nincs rá egyértelmű szabvány 2003.09.12. Markó Tamás, PTE TTK

A pszeudokód - példa Az euklideszi algoritmus (két szám legnagyobb közös osztójának meghatározása): Első változat: ciklus amíg a két szám nem egyenlő a nagyobbik szám helyettesítése a különbségük abszolutértékével ciklus vége a közös érték a legnagyobb közös osztó. Finomítás: x := egyik szám, y := másik szám ciklus amíg xy ha x > y x := x - y egyébként y := y - x feltétel vége ciklus vége x a legnagyobb közös osztó.

A pszeudokód értékelése Előnyök: a korszerű magasszintű nyelvek vezérlőszerkezetei szemléletesen megvalósíthatók egyszerű eszközökkel elkészíthető a leírás fokozatosan finomítható a leírás fokozatosan átdolgozható programkóddá az eredeti leírás kommentárként megmaradhat a programkódban Hátrányok: kívülállóknak nem szemléletes egyéni, nincsenek egységes szabályok

A módszerek kombinálhatók Átfogó szemléltetésre (a felhasználóknak és a programozóknak): folyamatábra (ezen a szinten nincsenek ciklusok!!!) A résztevékenységek pontos specifikálására (a programozóknak): pszeudokód 2003.09.12. Markó Tamás, PTE TTK

A módszerek kombinálhatók 2003.09.12. Markó Tamás, PTE TTK

Házi feladat - várakozás a buszmegállóban A 6.55-ös vonattal Budapestre akarunk utazni. 6.15-kor megérkezünk csomagjainkkal a 30-as busz Kürt utcai végállomásához. Ha jön a busz, elmegyünk vele. Ha arra jár egy ismerős kocsival és felajánlja, hogy elvisz, akkor elmegyünk vele. Ha arra jár egy szabad taxi, megállítjuk, és azzal megyünk. Ha egyszerre több lehetőségünk is lenne, akkor a következő prioritás szerint választunk: 1.: az ismerős, 2.: a busz, 3.: a taxi. Ha 6.40-ig nem történt meg egyik sem, akkor hazamegyünk (már nem érnénk el a vonatot).