Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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: a0 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=(b24*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:=d0 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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.