Programozási alapismeretek 1. előadás

Hasonló dokumentumok
Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Programozási alapismeretek. Bevezető

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Algoritmizálás, adatmodellezés tanítása 1. előadás

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Programozás alapjai (ANSI C)

Maximum kiválasztás tömbben

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Bevezetés a programozásba I.

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Bevezetés az informatikába

Bevezetés a programozásba I.

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Programtervezés. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

PFW Programing Fundamentals Wizard

Programozás alapjai 1.Gy: Algoritmizálás P R O

Tamás Ferenc: C++ (az emelt szintű érettségin) Előszó

Algoritmusok, adatszerkezetek, objektumok

Informatika tanítási módszerek

A Code::Blocks fejlesztőkörnyezet

Pénzügyi algoritmusok

Programozási alapismeretek 3. előadás

AZ ALGORITMUS. az eredményt szolgáltatja

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Algoritmizálás és adatmodellezés tanítása 2. előadás

Algoritmizálás, adatmodellezés 1. előadás

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Algoritmizálás, adatmodellezés tanítása 6. előadás

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

NAGY KRISZTIÁN. Programozás. a Modellező informatikus szakirányon 1. KÖTET. 4. kiadás

Bevezetés a programozásba I.

Programozási alapismeretek 2009/2010

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Bevezetés a programozásba. 9. Előadás: Rekordok

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

1. Alapok. Programozás II

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Programozási nyelvek (ADA)

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Programozás I. gyakorlat

Szerző. Természetesen aktualizálandó adatok.

Programozás Minta programterv a 1. házi feladathoz 1.

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

Bevezetés a programozásba. 11. Előadás: Esettanulmány

INFORMATIKA tétel 2019

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Algoritmusok. Dr. Iványi Péter

Algoritmusok. Hogyan csináljam?

Géptermi zh-írás forgatókönyve

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

PROGRAMKÉSZÍTÉS LÉPÉSEI, PROGRAMOZÁSI ELVEK

Programozás C++ -ban 2007/1

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Algoritmizálás + kódolás C++ nyelven és Pascalban

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozási tételek és C++

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

AZ ADATSZERKEZETES BEADANDÓ FELADAT ÉRTÉKELÉSI SZEMPONTJAI

Webprogramozás szakkör

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

Java programozási nyelv

Gregorics Tibor PROGRAMOZÁS. 2. kötet MEGVALÓSÍTÁS

Programozási nyelvek (ADA)

Bevezetés a programozásba I.

Webprogramozás szakkör

A beolvasás és kiírás szerepe a programozásoktatás kezdeti szakaszában

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Az informatika kulcsfogalmai

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Az algoritmusok alapelemei

Pásztor Attila. Algoritmizálás és programozás az emeltszintű érettségin

Alkalmazott modul: Programozás. C++ alapismeretek. C++ alapismeretek Történet

Delphi programozás I.

9.fejezet: Függvények és külső eljárások

ELEMI PROGRAMOZÁSI TÉTELEK

INFORMATIKA tétel 2017

S z á m í t ó g é p e s a l a p i s m e r e t e k

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Programozás Minta programterv a 2. házi feladathoz 1.

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

A C# programozási nyelv alapjai

/ o s t a n év

Programozási alapok jegyzet

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Számítógép és programozás 2

Algoritmizálás és adatmodellezés 2. előadás

Átírás:

Programozási alapismeretek 1. előadás

Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33

A programkészítés folyamata 1. Specifikálás (miből?, mit?) specifikáció 2. Tervezés (mivel?, hogyan?) adat- + algoritmusleí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 3/33

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 4/33

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 5/33

Az algoritmus fogalma Az algoritmusok összeállítási módjai: Szekvencia (egymás utáni végrehajtá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ó) 6/33

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=(x 2 +y 2 =z 2 ) Megjegyzés: a 3 szám sorrendjét ezek szerint rögzítettük z az átfogó hossza! 7/33

Példa: háromszög (algoritmus) Algoritmus: A programunk három fő részbő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:=(x 2 +y 2 =z 2 ) Ki: lehet Az elemi utasításokat egy-egy dobozba írjuk. Később a be- és kimenetet nem algoritmizáljuk! 8/33

Példa: háromszög (algoritmus) Egy másik algoritmus a lényegi részre: xx:=x 2 Segéd változók deklarálása széljegyzetként Változó xx,yy,zz:valós yy:=y 2 zz:=z 2 lehet:=(xx+yy=zz) Bevezethetők/-endők segéd (belső, saját) változók. 9/33

Példa: másodfokú egyenlet (specifikáció) Feladat: Adjuk meg a másodfokú egyenlet egy megoldá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 10/33

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é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! 2 b b 4 a c Megoldóképlet: x1,2 2 a 11/33

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étel 2 : x b b 2 2 4 a a c Nyitott kérdések: Mindig van megoldás? Egy megoldás van? 12/33

Példa: másodfokú egyenlet (specifikáció) Kimenet bővítés: Kimenet: x Valós, van Logikai Utófeltétel: van=(b 2-4*a*c 0) és van x b b 2 2 4 a a c Nyitott kérdés: Egy megoldás van? hf. 13/33

Példa: másodfokú egyenlet (algoritmus) Algoritmus: d:=b 2-4*a*c Változó d:valós van:=d 0 I van? N Igaz-ág x : b 2 a d Hamis-ág A feltételes utasítás 3-dobozos struktúra. 14/33

Példa: másodfokú egyenlet (algoritmus) Algoritmus másképpen: Program MásodfokúEgyenlet: Változó x,y,z, d:valós van:logikai d:=b 2-4*a*c van:=d 0 Ha van akkor Program vége. x: b 2 a d 15/33

Algoritmusleíró nyelvek Szöveges leírás Mondatokkal leírás Mondatszerű elemekkel pszeudokód Rajzos leírás Folyamatábra Struktogram 16/33

Struktogram (és pszeudokód) Szekvencia: Utasítás1 Utasítás2 Elágazások: 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 17/33

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

Kódolás (fejlesztői környezet) Keretrendszer: Code::Blocks Letöltés: www.codeblocks.org Telepítés: értelemszerűen 19/33

Kódolás (fejlesztői környezet) Első elindításkor: a fordítóprogram kiválasztása 20/33

Kódolás (fejlesztői környezet) Használat lépései: 1. projekt létrehozása, azaz milyen platformra készül a majdani alkalmazás: Create a new project 2. sablon (template) választása: Console application 21/33

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 22/33

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ájlnév projektfájlnév útvonallal 23/33

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 24/33

Kódolás (fejlesztői környezet) A kialakult munkakörnyezet: a diszken: a keretrendszerben: a program kibontása 25/33

Kódolás (fejlesztői környezet) A kialakult munkakörnyezet: a diszken: a keretrendszerben: 26/33

Kódolás (fejlesztői környezet) A keletkezett 0. program fordítása 27/33

Kódolás (fejlesztői környezet) A kialakult munkakörnyezet: a diszken: 28/33

Kódolás (fejlesztői környezet) A kialakult munkakörnyezet: a diszken: 29/33

Kódolás (fejlesztői környezet) A kialakult munkakörnyezet: a main.cpp tartalma: #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; } (meglepő módon?) 30/33

Kódolás (fejlesztői környezet) A kialakult munkakörnyezet: a elsőprog.cbp tartalma (xml): (mily meglepő!) 31/33

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? 32/33

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