Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozási alapismeretek 1. előadás

Hasonló előadás


Az előadások a következő témára: "Programozási alapismeretek 1. előadás"— Előadás másolata:

1 Programozási alapismeretek 1. előadás
Programozás alapjai Programozási alapismeretek 1. előadás Szlávi-Zsakó: 1. előadás

2 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás 2

3 A problémamegoldás lépései
Programozás alapjai 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, ...) Igényfelmérés  nem-formális specifikálás Tervezés  formális specifikálás Szervezés  algoritmizálás Építkezés  Kódolás Használatba vétel  Tesztelés, hibakeresés, hibajavítás Beköltözés, bentlakás  használat, karbantartás Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás 3

4 A programkészítés folyamata
Programozás alapjai 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 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

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

6 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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! Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

7 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

8 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai Az algoritmus fogalma Az (alap)algoritmus elemeinek végre-hajtási „stratégiái”: egymásutáni végrehajtás nem-determinisztikusság párhuzamosság Gondoljuk meg a példa elemeit ebből a szempontból! Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

9 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

10 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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 Ft-ost Új algoritmikus elem: választás két tevé-kenység közül, esetleg nem-determinisz-tikus választás Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

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

12 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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) Alprogram (egy összetett tevékenység, egyedi néven – absztrakció) Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

13 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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 5-6.: Egyéb „technikai” körülmények (pl. megjelenítés, memóriakorlát, speciális adatszerkezet…) Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

14 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1.
Programozás alapjai 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 T/2-3.: inkább lehetőség, mint alaptulajdonság, nagyban függ az ember „leleményességétől”, fogalomalkotó képességétől, kreativitásától Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

15 Példa: háromszög (specifikáció)
Programozás alapjai 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! Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

16 Példa: háromszög (algoritmus)
Programozás alapjai 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, az eredmény kiírása: Az „elemi” utasításokat egy-egy „dobozba” írjuk. Később a be- és kimenetet nem algoritmizáljuk! Be: x,y,z [x>0 és y>0 és z>0] lehet:=(x2+y2=z2) Ki: lehet A „lehet:=(x2+y2=z2)” utasítással ekvivalens, csak nála jóval hosszabb a „Ha x2+y2=z2 akkor lehet:=Igaz különben lehet:=Hamis” utasítással. Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

17 Példa: háromszög (algoritmus)
Programozás alapjai Példa: háromszög (algoritmus) Egy másik algoritmus a lényegi részre: Bevezethetők/-endők segéd (belső, saját) változók. xx:=x2 yy:=y2 zz:=z2 lehet:=(xx+yy=zz) Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

18 Példa: másodfokú egyenlet (specifikáció)
Programozás alapjai 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 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

19 Példa: másodfokú egyenlet (specifikáció)
Programozás alapjai 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! Megoldóképlet: Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

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

21 Példa: másodfokú egyenlet (specifikáció)
Programozás alapjai 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 . Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

22 Példa: másodfokú egyenlet (algoritmus)
Programozás alapjai Példa: másodfokú egyenlet (algoritmus) Algoritmus: A feltételes utasítás „3-dobozos” struktúra. d:=b2-4*a*c van:=d0 van? I N Igaz-ág Hamis-ág Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

23 Példa: másodfokú egyenlet (algoritmus)
Programozás alapjai 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. Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

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

25 Struktogram (és pszeudokód)
Programozás alapjai Struktogram (és pszeudokód) Szekvencia: Elágazások: Utasítás1 Utasítás2 Ha Feltétel akkor Igaz-ág utasításai különben Hamis-ág utasításai Elá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ások Elágazás vége Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

26 Struktogram (és pszeudokód)
Programozás alapjai 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ásai Ciklus vége Ciklus ciklusmag utasításai amíg Feltétel Ciklus vége Ciklus cv=tól ig … ciklusmag utasításai Ciklus vége Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

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

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

29 Kódolás (fejlesztői környezet)
Programozás alapjai Kódolás (fejlesztői környezet) 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 Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

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

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

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

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

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

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

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

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

38 Kódolás (fejlesztői környezet)
Programozás alapjai Kódolás (fejlesztői környezet) A kialakult munkakörnyezet: a main.cpp tartalma: (meglepő módon?) #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; } A C++ kulcs-szavakat vastagítottuk. Horváth-Szlávi-Zsakó: Programozási alapismeretek 1. Szlávi-Zsakó: 1. előadás

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

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

41 Programozási alapismeretek 1. előadás vége
Programozás alapjai Programozási alapismeretek 1. előadás vége Szlávi-Zsakó: 1. előadás 41


Letölteni ppt "Programozási alapismeretek 1. előadás"

Hasonló előadás


Google Hirdetések