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.

Hasonló dokumentumok
Programozási alapismeretek 1. előadás

Programozási alapismeretek. Bevezető

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

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

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!

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

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

Programozás alapjai (ANSI C)

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.

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

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

Maximum kiválasztás tömbben

Bevezetés a programozásba I.

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

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

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

Bevezetés az informatikába

AZ ALGORITMUS. az eredményt szolgáltatja

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

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

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

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

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ő

Informatika tanítási módszerek

Programozási alapismeretek 3. előadás

Algoritmusok, adatszerkezetek, objektumok

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

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

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

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

Programozási alapismeretek 2009/2010

Programozási nyelvek (ADA)

PFW Programing Fundamentals Wizard

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 1. előadás

A Code::Blocks fejlesztőkörnyezet

Pénzügyi algoritmusok

Bevezetés a programozásba I.

Programozási tételek és C++

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

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

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

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

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

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

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

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

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

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ás C nyelven (3. ELŐADÁS) Sapientia EMTE

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

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

Webprogramozás szakkör

Java programozási nyelv

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

Programozás I. gyakorlat

Algoritmusok. Hogyan csináljam?

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

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

Algoritmus fogalma. Mi az algoritmus? HF: Al Khwarizmi. Egy adott probléma megoldásának leírása elemi lépések sorozatával

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

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

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

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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?

INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

Programozási nyelvek (ADA)

1. Alapok. Programozás II

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

Az algoritmusok alapelemei

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

Az informatika kulcsfogalmai

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

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

Bevezetés a programozásba I.

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

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

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

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

Webprogramozás szakkör

Programozás II. 6.Öröklés Dr. Iványi Péter

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

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

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

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

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

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

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

B I T M A N B I v: T M A N

C++ programok fordítása

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze.

Adatbázis rendszerek Gy: Algoritmusok C-ben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

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

Átírás:

Tartalom 1. előadás programozás során használt nyelvek A specifikáció Algoritmikus nyelvek A problémamegoldás lépései 3/41 (miből?, mit?) specifikáció (mivel?, hogyan?) adat- + algoritmus-leírás 3. (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 4/41 Élőnyelv = Magyar Specifikáció Algoritmusleíró Programozási Gépi 2/41 2. Tervezés A nyelvek (magyar gépi) közelítése 1. Specifikálás Nyelvi szintek struktogram kódolás a fejlesztői környezet A programkészítés folyamata 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,...) programkészítés folyamata Programozási alapismeretek problémamegoldás lépései 5/41 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! 6/41

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 7/41 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! 9/41 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 öt 20 Ft-ost 3. 10/41 10/41 Dobj be öt 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 8/41 Új algoritmikus elem: választás két tevé-kenység közül, esetleg nemdeterminisz-tikus választás Új algoritmikus elem: ismétlés feltételtől függően Az alapalgoritmus elemei: egymásutáni végrehajtás nem-determinisztikusság párhuzamosság 11/41 11/41 ok ö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) 12/41 12/41

A specifikáció 1. 2. 3. 4. 5. 6. 7. 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 k definíciói 13/41 13/41 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 Példa: háromszög Példa: háromszög Feladat: 3 szám lehet-e egy derékszögű háromszög 3 oldala? Specifikáció: Bemenet: x,y,z: Kimenet: lehet:logikai Logikai Előfeltétel: x>0 és y>0 és z>0 Utófeltétel: lehet=(x2+y2=z2) Algoritmus: 15/41 15/41 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:=(x2+y2=z2) Ki: lehet Megjegyzés: a 3 szám sorrendjét ezek sze-rint rögzítettük z az átfogó hossza! Megjegyzés: később eltekintünk a beés ki-menet algoritmizálásától! Egy másik algoritmus a lényegi xx:=x2 yy:=y2 zz:=z2 lehet:=(xx+yy=zz ) Feladat: Adjuk meg a másodfokú egy megol-dását! Az : ax2+bx+c=0 Kérdések: Bevezethetők/-endők segéd (belső, saját) változók. Mi a megoldás? kimenet Mit jelent: megoldásnak lenni? utófeltétel 16/41 16/41 Példa: háromszög részre: 14/41 14/41 Biztos van megoldás? előfeltétel Biztos egy megoldás van? kimenet/utófeltétel 17/41 17/41 18/41 18/41

Specifikáció1: Bemenet: a,b,c: Kimenet: x: Előfeltétel: Utófeltétel 1: ax2+bx+c=0 Mi lenne, ha megengednénk? Utófeltétel2x : Megjegyzés: az uf. nem ad algoritmizálható információt. Nem baj, de próbálkozzunk még! Specifikáció2: Bemenet: a,b,c: Kimenet: x: Előfeltétel: a 0 19/41 19/41 Nyitott kérdések: Mindig van megoldás? Egy megoldás van? van x Algoritmus: d:=b2-4*a*c b b 4 a c 2 van:=d 0 van? I Igaz-ág x : Nyitott kérdés: 21/41 21/41 Szöveges Program MásodfokúEgyenlet: d:=b2-4*a*c van:=d 0 b d Ha van akkor x : Program vége. 22/41 22/41 Algoritmusleíró nyelvek Algoritmus másképpen: b d N Hamis-ág Egy megoldás van? hf. 20/41 20/41 Kimenet bővítés: Kimenet: x:,, van:logikai Logikai 2 Utófeltétel: van=(b 4*a*c) és b b2 4 a c Mondatokkal leírás Mondatszerű elemekkel pszeudokód Rajzos 23/41 23/41 leírás leírás Folyamatábra Struktogram 24/41 24/41

Struktogram Struktogram (és pszeudokód) (és pszeudokód) Ciklusok: Szekvencia: Utasítás1 Utasítás2 Ciklus amíg Feltétel ciklusmag utasításai Ciklus vége Elágazások: Ciklus ciklusmag utasításai amíg Feltétel Ciklus vége 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 Feltétel2 esetén egyéb esetekben Elágazás vége Struktogramszerkesztés: Utasítások1 Utasítások2 Utasítások Ciklus cv=tól ig ciklusmag utasításai Ciklus vége 25/41 25/41 Táblázatkezelővel/szövegszerkesztővel Célprogramokkal (pl. NSD) Keretrendszer: Első Code::Blocks 26/41 26/41 elindításkor: a fordítóprogram kiválasztása Letöltés: www.codeblocks.org Telepítés: értelemszerűen 2. 1. 27/41 27/41 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 28/41 28/41 további lépései: a projekt munkakörnyezete a diszken projektnév projekt szülőkönyvtár 29/41 29/41 30/41 30/41

a projekt munkakörnyezete a diszken további lépései: fordítóválasztás a munkakörnyezet kialakítás befejezése fordító projektnév projekt szülőkönyvtár projektfájlnév fejlesztendő? projektfájlnév útvonallal végleges? további lépései: a fejlesztendő környezete a végleges környezete 31/41 31/41 32/41 32/41 a keretrendszerben: a keretrendszerben: a program kibontása 33/41 33/41 keletkezett 0. program fordítása 34/41 34/41 35/41 35/41 36/41 36/41

a main.cpp tartalma: #include <iostream > <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; 0; } (meglepő módon?) 37/41 37/41 a elsőprog.cbp tartalma (xml): futó konzolalkalmazás: a futás eredmény e (mily meglepő!) visszaado tt érték Programozási alapismeretek 1. előadás vége 39/41 39/41 38/41 38/41 fordítás (az utolsó lefordított) futtatás(a) futási idő fordítás+futtatás és a konzolablak tartalma: Érdemes elindítani az exet! Mit tapasztalt? Magyarázat? 40/41 40/41