1 / 41

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás. Tartalom. A problémamegoldás lépései – programkészítés folyamata A programozás során használt nyelvek Az algoritmus A specifikáció Algoritmikus nyelvek – struktogram A kódolás – a fejlesztői környezet. A problémamegoldás lépései.

ira
Download Presentation

Programozási alapismeretek 1. előadás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programozási alapismeretek 1. előadás

  2. Tartalom • A problémamegoldás lépései– programkészítés folyamata • A programozás során használt nyelvek • Az algoritmus • A specifikáció • Algoritmikus nyelvek– struktogram • A kódolás– a fejlesztői környezet Szlávi-Zsakó: Programozási alapismeretek 1.

  3. A problémamegoldás lépései Mintapélda: házépítés Mi az, ami látszik? Mi az, ami ténylegesen mögötte van? Igényfelmérés (szempontok: család mérete, elképzelése, pénz) Tervezés (alaprajz, anyagigény / mérnök…) Szervezés (ütemterv / vállalkozó…) Építkezés (anyagbeszerzés, kivitelezés / kivitelező…) Használatba vétel (szemrevételezés – szépség, kipróbálás – jóság) Beköltözés, bentlakás (módosítgatás, újabb hibák, ...) Szlávi-Zsakó: Programozási alapismeretek 1.

  4. A programkészítés folyamata Specifikálás (miből?, mit?) specifikáció Tervezés (mivel?, hogyan?) adat- + algoritmus-leírás Kódolás (a gép hogyan?) kód (reprezentáció + implementáció) Tesztelés (hibás-e?) hibalista (diagnózis) Hibakeresés (hol a hiba?) hibahely, -ok Hibajavítás (hogyan jó?) helyes program Minőségvizsgálat, hatékonyság (jobbítható-e?, hogyan?) jó program Dokumentálás (hogyan működik, használható?) használható program Használat, karbantartás (még mindig jó?) évelő (időtálló) program Szlávi-Zsakó: Programozási alapismeretek 1.

  5. Nyelvi szintek Élőnyelv = Magyar  Specifikáció  Algoritmusleíró  Programozási  Gépi A nyelvek (magyar  gépi) közelítése Szlávi-Zsakó: Programozási alapismeretek 1.

  6. Az algoritmus fogalma Italautomata használata: Válassz italt! Dobj be egy 100 Ft-ost! Nyomd meg a megfelelő gombot! Várj amíg folyik az ital! Vedd ki az italt! Idd meg! Szlávi-Zsakó: Programozási alapismeretek 1.

  7. Az algoritmus fogalma végrehajtható (van hozzá végrehajtó) lépésenként hajtható végre a lépések maguk is algoritmusok pontosan definiált, adott végrehajtási sorrenddel egy folyamat véges hosszúságú, időben esetleg végtelen leírása Szlávi-Zsakó: Programozási alapismeretek 1.

  8. Az algoritmus fogalma Az alapalgoritmus elemei: egymásutáni végrehajtás nem-determinisztikusság párhuzamosság Szlávi-Zsakó: Programozási alapismeretek 1.

  9. Az algoritmus fogalma Italautomata használata: Válassz italt! Dobj be egy 100 Ft-ost! Nyomd meg a megfelelő gombot! Ismételd nézd a poharat!amíg folyik az ital! Vedd ki az italt! Idd meg! Új algoritmikus elem: ismétlés feltételtől függően Szlávi-Zsakó: Programozási alapismeretek 1.

  10. Az algoritmus fogalma Italautomata használata: Válassz italt! Ha van 100 Ft-osod akkor Dobj be egy 100 Ft-ost! különben Dobj be öt 20 Ft-ost … Új algoritmikus elem: választás két tevé-kenység közül, esetleg nem-determinisz-tikus választás Szlávi-Zsakó: Programozási alapismeretek 1.

  11. Az algoritmus fogalma Dobj be öt 20 Ft-ost: Ismételd 5-ször: Dobj be egy 20 Ft-ost! Új algoritmikus elem: ismétlés adott darab-számszor Szlávi-Zsakó: Programozási alapismeretek 1.

  12. Az algoritmus fogalma Az algoritmusok összeállítási módjai: Szekvencia (egymás utáni végrehaj-tás) Elágazás (választás 2 vagy több tevé-kenységből) Ciklus (ismétlés adott darabszámszor vagy adott feltételtől függően) Szlávi-Zsakó: Programozási alapismeretek 1.

  13. A specifikáció Bemenő adatok (azonosító, értékhalmaz, mértékegység) Ismeretek a bemenetről (előfeltétel) Eredmények (azonosító, értékhalmaz, …) Az eredmény kiszámítási szabálya (utófeltétel) A megoldással szembeni követelmények Korlátozó tényezők A használt fogalmak definíciói Szlávi-Zsakó: Programozási alapismeretek 1.

  14. A specifikáció Tulajdonságai Egyértelmű, pontos, teljes Rövid, tömör, formalizált Szemléletes, érthető Specifikációs eszközök Szöveges leírás Matematikai megadás Szlávi-Zsakó: Programozási alapismeretek 1.

  15. Példa: háromszög(specifikáció) Feladat: 3 szám lehet-e egy derékszögű háromszög 3 oldala? Specifikáció: Bemenet: x,y,z:Valós Kimenet: lehet:Logikai Előfeltétel: x>0 és y>0 és z>0 Utófeltétel: lehet=(x2+y2=z2) Megjegyzés: a 3 szám sorrendjét ezek sze-rint rögzítettük – z az átfogó hossza! Szlávi-Zsakó: Programozási alapismeretek 1.

  16. Példa: háromszög(algoritmus) Algoritmus: A programunk három fő rész-ből áll: az adatok beolvasása, az eredmény kiszámítása, azeredmény kiírása: Megjegyzés: később eltekintünk a be- és ki-menet algoritmizálásától! Szlávi-Zsakó: Programozási alapismeretek 1.

  17. Példa: háromszög(algoritmus) Egy másik algoritmusa lényegi részre: Bevezethetők/-endők segéd (belső, saját) változók. Szlávi-Zsakó: Programozási alapismeretek 1.

  18. Példa: másodfokú egyenlet(specifikáció) Feladat: Adjuk meg a másodfokú egyenlet egy megol-dását! Az egyenlet: ax2+bx+c=0 Kérdések: Mi a megoldás? – kimenet Mit jelent: „megoldásnak lenni”? – utófeltétel Biztos van megoldás? – előfeltétel Biztos egy megoldás van? – kimenet/utófeltétel Szlávi-Zsakó: Programozási alapismeretek 1.

  19. Példa: másodfokú egyenlet(specifikáció) Specifikáció1: Bemenet: a,b,c:Valós Kimenet: x:Valós Előfeltétel: – Utófeltétel1: ax2+bx+c=0 Megjegyzés: az uf. nem ad algoritmizálható információt. Nem baj, de … próbálkozzunk még! Szlávi-Zsakó: Programozási alapismeretek 1.

  20. Példa: másodfokú egyenlet(specifikáció) Specifikáció2: Bemenet: a,b,c:Valós Kimenet: x:Valós Előfeltétel: a0Mi lenne, ha megengednénk? Utófeltétel2: Nyitott kérdések: Mindig van megoldás? Egy megoldás van? Szlávi-Zsakó: Programozási alapismeretek 1.

  21. Példa: másodfokú egyenlet(specifikáció) Kimenet bővítés: Kimenet: x:Valós,van:Logikai Utófeltétel: van=(b24*a*c) és van  Nyitott kérdés: Egy megoldás van? – hf . Szlávi-Zsakó: Programozási alapismeretek 1.

  22. Példa: másodfokú egyenlet(algoritmus) Algoritmus: I N Igaz-ág Hamis-ág Szlávi-Zsakó: Programozási alapismeretek 1.

  23. Példa: másodfokú egyenlet (algoritmus) Algoritmus másképpen: Program MásodfokúEgyenlet: d:=b2-4*a*c van:=d≥0 Ha van akkor Program vége. Szlávi-Zsakó: Programozási alapismeretek 1.

  24. Algoritmusleíró nyelvek Szöveges leírás Mondatokkal leírás Mondatszerű elemekkel – pszeudokód Rajzos leírás Folyamatábra Struktogram Szlávi-Zsakó: Programozási alapismeretek 1.

  25. Struktogram(és pszeudokód) Szekvencia: Elágazások: Utasítás1 Utasítás2 Ha Feltétel akkor Igaz-ág utasításaikülönben Hamis-ág utasításaiElágazás vége Elágazás Feltétel1 esetén Utasítások1 Feltétel2 esetén Utasítások2 … …egyéb esetekben UtasításokElágazás vége Szlávi-Zsakó: Programozási alapismeretek 1.

  26. Struktogram(és pszeudokód) Ciklusok: Struktogramszerkesztés: Táblázatkezelővel/szövegszerkesztővel Célprogramokkal (pl. NSD) Ciklus amíg Feltétel ciklusmag utasításaiCiklus vége Ciklus ciklusmag utasításaiamíg FeltételCiklus vége Ciklus cv=tól ig … ciklusmag utasításaiCiklus vége Szlávi-Zsakó: Programozási alapismeretek 1.

  27. Kódolás(fejlesztői környezet) Keretrendszer: Code::Blocks Letöltés: www.codeblocks.org Telepítés: értelemszerűen Szlávi-Zsakó: Programozási alapismeretek 1.

  28. Első elindításkor: a fordítóprogram kiválasztása Kódolás(fejlesztői környezet) Szlávi-Zsakó: Programozási alapismeretek 1.

  29. Használat lépései: projekt létrehozása, azaz milyen plat-formra készül a majdani alkalmazás:Create a new project sablon (template) választása: Console application Kódolás(fejlesztői környezet) Szlávi-Zsakó: Programozási alapismeretek 1.

  30. Használat további lépései: a projekt munkakörnyezete a diszken Kódolás(fejlesztői környezet) projektnév projekt szü-lőkönyvtár Szlávi-Zsakó: Programozási alapismeretek 1.

  31. Használat további lépései: a projekt munkakörnyezete a diszken Kódolás(fejlesztői környezet) projektnév projekt szü-lőkönyvtár projektfájl-név projektfájl-név útvonallal Szlávi-Zsakó: Programozási alapismeretek 1.

  32. Használat további lépései: fordítóválasztás a munkakörnyezet kialakítás befejezése Kódolás(fejlesztői környezet) fordító fejlesztendő? a fejlesztendő környezete végleges? a végleges környezete Szlávi-Zsakó: Programozási alapismeretek 1.

  33. A kialakult munkakörnyezet: a diszken: a keretrendszerben: Kódolás(fejlesztői környezet) a program „kibontása” Szlávi-Zsakó: Programozási alapismeretek 1.

  34. A kialakult munkakörnyezet: a diszken: a keretrendszerben: Kódolás(fejlesztői környezet) Szlávi-Zsakó: Programozási alapismeretek 1.

  35. A „keletkezett 0. program” fordítása Kódolás(fejlesztői környezet) Szlávi-Zsakó: Programozási alapismeretek 1.

  36. A kialakult munkakörnyezet: a diszken: Kódolás(fejlesztői környezet) Szlávi-Zsakó: Programozási alapismeretek 1.

  37. A kialakult munkakörnyezet: a diszken: Kódolás(fejlesztői környezet) Szlávi-Zsakó: Programozási alapismeretek 1.

  38. A kialakult munkakörnyezet: a main.cpp tartalma:(meglepő módon?) Kódolás(fejlesztői környezet) #include <iostream> usingnamespace std; intmain() { cout << "Hello world!" << endl; return 0; } Szlávi-Zsakó: Programozási alapismeretek 1.

  39. A kialakult munkakörnyezet: a elsőProg.cbp tartalma (xml): Kódolás(fejlesztői környezet) (mily meglepő!) Szlávi-Zsakó: Programozási alapismeretek 1.

  40. A futó konzolalkalmazás: „fordítás” – (az utolsó lefordított) futtatás(a) – fordítás+futtatás – és a konzolablak tartalma: Kódolás(fejlesztői környezet) futási idő a futás eredménye visszaadott érték Érdemes elindítani az exe-t! Mit tapasztalt? Magyarázat? Szlávi-Zsakó: Programozási alapismeretek 1.

  41. Programozási alapismeretek1. előadás vége

More Related