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. ELTE Tartalom  A problémamegoldás lépései – programkészítés folyamata A problémamegoldás lépései  A programozás.

Hasonló előadás


Az előadások a következő témára: "Programozási alapismeretek 1. előadás. ELTE Tartalom  A problémamegoldás lépései – programkészítés folyamata A problémamegoldás lépései  A programozás."— Előadás másolata:

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

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

3 ELTE 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? 1. Igényfelmérés (szempontok: család mérete, elképzelése, pénz) 2. Tervezés (alaprajz, anyagigény / mérnök…) 3. Szervezés (ütemterv / vállalkozó…) 4. Építkezés (anyagbeszerzés, kivitelezés / kivitelező…) 5. Használatba vétel (szemrevételezés – szépség, kipróbálás – jóság) 6. Beköltözés, bentlakás (módosítgatás, újabb hibák,...) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

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

5 ELTE 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 /41

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

7 ELTE 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 /41

8 ELTE 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 /41

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

10 ELTE Az algoritmus fogalma Italautomata használata: 1. Válassz italt! 2. Ha van 100 Ft-osod akkor Dobj be egy 100 Ft-ost! különben Dobj be 5 20 Ft-ost 3. … Ú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 /41

11 ELTE Az algoritmus fogalma Dobj be 5 20 Ft-ost: 1. 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 /41

12 ELTE 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 /41

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

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

15 ELTE Példa: háromszög (specifikáció) Feladat: 3 szám lehet-e egy derékszögű háromszög 3 oldala? Specifikáció: Valós  Bemenet: x,y,z:Valós Logikai  Kimenet: lehet:Logikai  Előfeltétel: x>0 és y>0 és z>0  Utófeltétel: lehet=(x 2 +y 2 =z 2 ) 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 /41

16 ELTE 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:=(x 2 +y 2 =z 2 ) Ki: lehet Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

17 ELTE 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:=x 2 yy:=y 2 zz:=z 2 lehet:=(xx+yy=zz) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

18 ELTE Példa : másodfokú egyenlet (specifikáció) Feladat: Adjuk meg a másodfokú egyenlet egy megol- dását! Az egyenlet: ax 2 +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 /41

19 ELTE Példa : másodfokú egyenlet (specifikáció) Specifikáció 1 : Valós  Bemenet: a,b,c:Valós Valós  Kimenet: x:Valós  Előfeltétel: –  Utófeltétel 1 : ax 2 +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 /41

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

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

22 ELTE Példa : másodfokú egyenlet (algoritmus) d:=b 2 -4*a*c van:=d  0 van? Igaz-ág Hamis-ág IN Algoritmus : A feltételes utasítás „3-dobozos” struktúra. Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

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

24 ELTE 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 /41

25 ELTE Struktogram (és pszeudokód)  Szekvencia:  Elágazások: Utasítás1Utasítás2 Ha Feltétel akkor Igaz-ág utasításai különben Hamis-ág utasításai Elágazás vége 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 /41

26 ELTE Struktogram (és pszeudokód)  Ciklusok:  Struktogramszerkesztés:  Táblázatkezelővel/szövegszerkesztővel  Célprogramokkal (pl. NSD)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 /41

27 ELTE 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 /41

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

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

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

31 ELTE  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 Kódolás (fejlesztői környezet) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

32 ELTE  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 Kódolás (fejlesztői környezet) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

33 ELTE  A kialakult munkakörnyezet:  a diszken:  a keretrendszerben: a program „kibontása” Kódolás (fejlesztői környezet) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

34 ELTE  A kialakult munkakörnyezet:  a diszken:  a keretrendszerben: Kódolás (fejlesztői környezet) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

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

36 ELTE  A kialakult munkakörnyezet:  a diszken: Kódolás (fejlesztői környezet) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

37 ELTE  A kialakult munkakörnyezet:  a diszken: Kódolás (fejlesztői környezet) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

38 ELTE  A kialakult munkakörnyezet:  a main.cpp tartalma: (meglepő módon?) #include #include using namespace std; int main() { cout << "Hello world!" << endl; cout << "Hello world!" << endl; return 0; return 0;} Kódolás (fejlesztői környezet) Horváth-Szlávi-Zsakó: Programozási alapismeretek /41

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

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

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


Letölteni ppt "Programozási alapismeretek 1. előadás. ELTE Tartalom  A problémamegoldás lépései – programkészítés folyamata A problémamegoldás lépései  A programozás."

Hasonló előadás


Google Hirdetések