Programozási alapismeretek 
1. előadás
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 22//4411
EELLTTEE 
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, ...) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 33//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 44//4411
EELLTTEE 
Nyelvi szintek 
Élőnyelv = pl. magyar 
ß 
Specifikációs 
ß 
Algoritmusleíró 
ß 
Programozási 
Ý 
Gépi 
A nyelvek (élő Û gépi) közelítése 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 55//4411
EELLTTEE 
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! 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 66//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 77//4411
EELLTTEE 
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! 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 88//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 99//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1100//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1111//4411
EELLTTEE 
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ó) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1122//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1133//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1144//4411
EELLTTEE 
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:VVaallóóss 
Kimenet: lehet:LLooggiikkaaii 
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! 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1155//4411
EELLTTEE 
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: 
Be: x,y,z [x>0 és y>0 és z>0] 
lehet:=(x2+y2=z2) 
Ki: lehet 
Az „elemi” utasításokat egy-egy „dobozba” 
írjuk. 
Később a be- és kimenetet nem algoritmizáljuk! 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1166//4411
EELLTTEE 
Példa: háromszög 
(algoritmus) 
Egy másik algoritmus a lényegi részre: 
xx:=x2 
yy:=y2 
zz:=z2 
lehet:=(xx+yy=zz) 
Bevezethetők/-endők segéd (belső, saját) 
változók. 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1177//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1188//4411
EELLTTEE 
Példa: másodfokú egyenlet 
(specifikáció) 
Specifikáció1: 
Bemenet: a,b,c:VVaallóóss 
Kimenet: x:VVaallóóss 
Előfeltétel: – 
Utófeltétel: ax2+bx+c=0 
1Megjegyzés: az uf. nem ad algoritmizálható 
információt. Nem baj, de … próbálkozzunk 
még! 
= - ± 2 
- * * 
Megoldóképlet: 
x b b 4 a c 
1,2 * 
2 a 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1199//4411
EELLTTEE 
Példa: másodfokú egyenlet 
(specifikáció) 
Specifikáció2: 
Bemenet: a,b,c:VVaallóóss 
Kimenet: x:VVaallóóss 
Előfeltétel: a¹0 
Mi lenne, ha megengednénk? 
2 
* 
= - + - * * 
x b b 4 a c 
Utófeltétel2: 
Nyitott kérdések: 
 Mindig van megoldás? 
 Egy megoldás van? 
2 a 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2200//4411
EELLTTEE 
Példa: másodfokú egyenlet 
(specifikáció) 
Kimenet bővítés: 
Kimenet: x:VVaallóóss,, van:LLooggiikkaaii 
Utófeltétel: van=(b2³4*a*c) és 
van ® 
Nyitott kérdés: 
2 
* 
= - + - * * 
x b b 4 a c 
 Egy megoldás van? – hf . 
2 a 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2211//4411
EELLTTEE 
Példa: másodfokú egyenlet 
(algoritmus) 
d:=b2-4*a*c 
van:=d³0 
van? 
II NN 
= - + 
x : b d 
* 
2 a 
IIggaazz--áágg 
HHaammiiss--áágg 
Algoritmus: 
A feltételes utasítás „3-dobozos” struktúra. 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2222//4411
EELLTTEE 
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. 
= - + 
b d 
2 a 
x: 
* 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2233//4411
EELLTTEE 
Algoritmusleíró nyelvek 
Szöveges leírás 
 Mondatokkal leírás 
 Mondatszerű elemekkel – pszeudokód 
Rajzos leírás 
 Folyamatábra 
 Struktogram 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2244//4411
EELLTTEE 
Struktogram 
(és pszeudokód) 
Szekvencia: 
Elágazások: 
UUttaassííttááss11 
UUttaassííttááss22 
HHaa FFeellttéétteell aakkkkoorr 
IIggaazz--áágg uuttaassííttáássaaii 
kküüllöönnbbeenn 
HHaammiiss--áágg uuttaassííttáássaaii 
EElláággaazzááss vvééggee 
EElláággaazzááss 
FFeellttéétteell11 eesseettéénn UUttaassííttáássookk11 
FFeellttéétteell22 eesseettéénn UUttaassííttáássookk22 
…… …… 
eeggyyéébb eesseetteekkbbeenn UUttaassííttáássookk 
EElláággaazzááss vvééggee 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2255//4411
EELLTTEE 
Struktogram 
(és pszeudokód) 
Ciklusok: 
CCiikklluuss aammíígg FFeellttéétteell 
cciikklluussmmaagg uuttaassííttáássaaii 
CCiikklluuss vvééggee 
CCiikklluuss 
cciikklluussmmaagg uuttaassííttáássaaii 
aammíígg FFeellttéétteell 
CCiikklluuss vvééggee 
CCiikklluuss ccvv==ttóóll iigg …… 
cciikklluussmmaagg uuttaassííttáássaaii 
CCiikklluuss vvééggee 
Struktogramszerkesztés: 
 Táblázatkezelővel/szövegszerkesztővel 
 Célprogramokkal (pl. NSD) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2266//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
Keretrendszer: 
Code::Blocks 
Letöltés: 
www.codeblocks.org 
Telepítés: 
értelemszerűen 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2277//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
Első elindításkor: 
a fordítóprogram kiválasztása 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2288//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2299//4411
EELLTTEE 
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) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3300//4411
EELLTTEE 
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) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3311//4411
EELLTTEE 
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 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3322//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
A kialakult munkakörnyezet: 
 a diszken: 
 a keretrendszerben: 
a program 
„kibontása” 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3333//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
A kialakult munkakörnyezet: 
 a diszken: 
 a keretrendszerben: 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3344//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
A „keletkezett 0. program” fordítása 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3355//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
A kialakult munkakörnyezet: 
 a diszken: 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3366//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
A kialakult munkakörnyezet: 
 a diszken: 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3377//4411
EELLTTEE 
Kódolás 
(fejlesztői környezet) 
A kialakult munkakörnyezet: 
 a main.cpp tartalma: 
##iinncclluuddee <<iioossttrreeaamm>> 
uussiinngg nnaammeessppaaccee ssttdd;; 
iinntt mmaaiinn(()) 
{{ 
ccoouutt <<<< ""HHeelllloo wwoorrlldd!!"" <<<< eennddll;; 
rreettuurrnn 00;; 
}} 
(meglepő módon?) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3388//4411
EELLTTEE 
A kialakult munkakörnyezet: 
 a elsőProg.cbp tartalma (xml): 
((mmiillyy mmeegglleeppőő!!)) 
Kódolás 
(fejlesztői környezet) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3399//4411
EELLTTEE 
A futó konzolalkalmazás: 
 „fordítás” – 
 (az utolsó lefordított) futtatás(a) – 
 fordítás+futtatás – 
 és a konzolablak tartalma: 
ÉÉrrddeemmeess eelliinnddííttaannii aazz eexxee--tt!! 
MMiitt ttaappaasszzttaalltt?? MMaaggyyaarráázzaatt?? 
visszaadott 
érték 
futási idő 
a futás 
eredménye 
Kódolás 
(fejlesztői környezet) 
1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 4400//4411
Programozási alapismeretek 
1. előadás vége

More Related Content

PPTX
PowerPoint: Powerful Presentation Design
PPTX
Előadás4
PPTX
Előadás3
PPTX
Előadás2
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
PowerPoint: Powerful Presentation Design
Előadás4
Előadás3
Előadás2
2024 Trend Updates: What Really Works In SEO & Content Marketing
Storytelling For The Web: Integrate Storytelling in your Design Process
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
Ad

Programozás alapismeretek EA

  • 2. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 22//4411
  • 3. EELLTTEE 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, ...) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 33//4411
  • 4. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 44//4411
  • 5. EELLTTEE Nyelvi szintek Élőnyelv = pl. magyar ß Specifikációs ß Algoritmusleíró ß Programozási Ý Gépi A nyelvek (élő Û gépi) közelítése 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 55//4411
  • 6. EELLTTEE 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! 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 66//4411
  • 7. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 77//4411
  • 8. EELLTTEE 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! 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 88//4411
  • 9. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 99//4411
  • 10. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1100//4411
  • 11. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1111//4411
  • 12. EELLTTEE 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ó) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1122//4411
  • 13. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1133//4411
  • 14. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1144//4411
  • 15. EELLTTEE 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:VVaallóóss Kimenet: lehet:LLooggiikkaaii 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! 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1155//4411
  • 16. EELLTTEE 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: Be: x,y,z [x>0 és y>0 és z>0] lehet:=(x2+y2=z2) Ki: lehet Az „elemi” utasításokat egy-egy „dobozba” írjuk. Később a be- és kimenetet nem algoritmizáljuk! 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1166//4411
  • 17. EELLTTEE Példa: háromszög (algoritmus) Egy másik algoritmus a lényegi részre: xx:=x2 yy:=y2 zz:=z2 lehet:=(xx+yy=zz) Bevezethetők/-endők segéd (belső, saját) változók. 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1177//4411
  • 18. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1188//4411
  • 19. EELLTTEE Példa: másodfokú egyenlet (specifikáció) Specifikáció1: Bemenet: a,b,c:VVaallóóss Kimenet: x:VVaallóóss Előfeltétel: – Utófeltétel: ax2+bx+c=0 1Megjegyzés: az uf. nem ad algoritmizálható információt. Nem baj, de … próbálkozzunk még! = - ± 2 - * * Megoldóképlet: x b b 4 a c 1,2 * 2 a 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 1199//4411
  • 20. EELLTTEE Példa: másodfokú egyenlet (specifikáció) Specifikáció2: Bemenet: a,b,c:VVaallóóss Kimenet: x:VVaallóóss Előfeltétel: a¹0 Mi lenne, ha megengednénk? 2 * = - + - * * x b b 4 a c Utófeltétel2: Nyitott kérdések:  Mindig van megoldás?  Egy megoldás van? 2 a 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2200//4411
  • 21. EELLTTEE Példa: másodfokú egyenlet (specifikáció) Kimenet bővítés: Kimenet: x:VVaallóóss,, van:LLooggiikkaaii Utófeltétel: van=(b2³4*a*c) és van ® Nyitott kérdés: 2 * = - + - * * x b b 4 a c  Egy megoldás van? – hf . 2 a 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2211//4411
  • 22. EELLTTEE Példa: másodfokú egyenlet (algoritmus) d:=b2-4*a*c van:=d³0 van? II NN = - + x : b d * 2 a IIggaazz--áágg HHaammiiss--áágg Algoritmus: A feltételes utasítás „3-dobozos” struktúra. 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2222//4411
  • 23. EELLTTEE 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. = - + b d 2 a x: * 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2233//4411
  • 24. EELLTTEE Algoritmusleíró nyelvek Szöveges leírás  Mondatokkal leírás  Mondatszerű elemekkel – pszeudokód Rajzos leírás  Folyamatábra  Struktogram 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2244//4411
  • 25. EELLTTEE Struktogram (és pszeudokód) Szekvencia: Elágazások: UUttaassííttááss11 UUttaassííttááss22 HHaa FFeellttéétteell aakkkkoorr IIggaazz--áágg uuttaassííttáássaaii kküüllöönnbbeenn HHaammiiss--áágg uuttaassííttáássaaii EElláággaazzááss vvééggee EElláággaazzááss FFeellttéétteell11 eesseettéénn UUttaassííttáássookk11 FFeellttéétteell22 eesseettéénn UUttaassííttáássookk22 …… …… eeggyyéébb eesseetteekkbbeenn UUttaassííttáássookk EElláággaazzááss vvééggee 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2255//4411
  • 26. EELLTTEE Struktogram (és pszeudokód) Ciklusok: CCiikklluuss aammíígg FFeellttéétteell cciikklluussmmaagg uuttaassííttáássaaii CCiikklluuss vvééggee CCiikklluuss cciikklluussmmaagg uuttaassííttáássaaii aammíígg FFeellttéétteell CCiikklluuss vvééggee CCiikklluuss ccvv==ttóóll iigg …… cciikklluussmmaagg uuttaassííttáássaaii CCiikklluuss vvééggee Struktogramszerkesztés:  Táblázatkezelővel/szövegszerkesztővel  Célprogramokkal (pl. NSD) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2266//4411
  • 27. EELLTTEE Kódolás (fejlesztői környezet) Keretrendszer: Code::Blocks Letöltés: www.codeblocks.org Telepítés: értelemszerűen 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2277//4411
  • 28. EELLTTEE Kódolás (fejlesztői környezet) Első elindításkor: a fordítóprogram kiválasztása 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2288//4411
  • 29. EELLTTEE Kódolás (fejlesztői környezet) 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 2299//4411
  • 30. EELLTTEE 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) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3300//4411
  • 31. EELLTTEE 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) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3311//4411
  • 32. EELLTTEE 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 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3322//4411
  • 33. EELLTTEE Kódolás (fejlesztői környezet) A kialakult munkakörnyezet:  a diszken:  a keretrendszerben: a program „kibontása” 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3333//4411
  • 34. EELLTTEE Kódolás (fejlesztői környezet) A kialakult munkakörnyezet:  a diszken:  a keretrendszerben: 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3344//4411
  • 35. EELLTTEE Kódolás (fejlesztői környezet) A „keletkezett 0. program” fordítása 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3355//4411
  • 36. EELLTTEE Kódolás (fejlesztői környezet) A kialakult munkakörnyezet:  a diszken: 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3366//4411
  • 37. EELLTTEE Kódolás (fejlesztői környezet) A kialakult munkakörnyezet:  a diszken: 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3377//4411
  • 38. EELLTTEE Kódolás (fejlesztői környezet) A kialakult munkakörnyezet:  a main.cpp tartalma: ##iinncclluuddee <<iioossttrreeaamm>> uussiinngg nnaammeessppaaccee ssttdd;; iinntt mmaaiinn(()) {{ ccoouutt <<<< ""HHeelllloo wwoorrlldd!!"" <<<< eennddll;; rreettuurrnn 00;; }} (meglepő módon?) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3388//4411
  • 39. EELLTTEE A kialakult munkakörnyezet:  a elsőProg.cbp tartalma (xml): ((mmiillyy mmeegglleeppőő!!)) Kódolás (fejlesztői környezet) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 3399//4411
  • 40. EELLTTEE A futó konzolalkalmazás:  „fordítás” –  (az utolsó lefordított) futtatás(a) –  fordítás+futtatás –  és a konzolablak tartalma: ÉÉrrddeemmeess eelliinnddííttaannii aazz eexxee--tt!! MMiitt ttaappaasszzttaalltt?? MMaaggyyaarráázzaatt?? visszaadott érték futási idő a futás eredménye Kódolás (fejlesztői környezet) 1144--1100--0066 HHoorrvváátthh--SSzzlláávvii--ZZssaakkóó:: PPrrooggrraammoozzáássii aallaappiissmmeerreetteekk 11.. 4400//4411

Editor's Notes

  • #4: 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
  • #14: 5-6.: Egyéb „technikai” körülmények (pl. megjelenítés, memóriakorlát, speciális adatszerkezet…)
  • #15: 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
  • #17: 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.
  • #27: http://people.inf.elte.hu/szlavi/Magamnak/C++/NSD10.zip http://people.inf.elte.hu/szlavi/C++/structorizer_3_08.zip
  • #39: A C++ kulcs-szavakat vastagítottuk.