Programozás I. Grafika Eseménykezelés. Programozás I. 2. gyakorlat Interakció a grafikus felületen, tagfüggvények. Surányi Márton PPKE-ITK
|
|
- Károly Bodnár
- 8 évvel ezelőtt
- Látták:
Átírás
1 Programozás I. 2. gyakorlat Interakció a grafikus felületen, tagfüggvények Surányi Márton PPKE-ITK / 1
2 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
3 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
4 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
5 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
6 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
7 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
8 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
9 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
10 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
11 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció: (itt) egér, billentyűzet által beavatkozunk a program működésébe a graphics-ben események segítségével tudjuk kezelni ezeket az esemény típusa: event az event egy struct, aminek vannak adattagjai: type keycode pos_x, pos_y button time 1 / 1
12 event adattagjai, lehetséges értékek type: esemény típusa: ev_key, ev_mouse, ev_timer keycode: billenytűesemény esetén: billentyű azonosítója pos_x, pos_y: egérmozgatás esetén: az egérkurzor pozíciója button: egéresemény (gomb) esetén: egérgomb azonosítója: btn_left, btn_right, btn_middle, btn_wheelup, btn_wheeldown time: időzítőesemény esetén: a program indítása óta eltelt idő millisec-ben 2 / 1
13 event adattagjai, lehetséges értékek type: esemény típusa: ev_key, ev_mouse, ev_timer keycode: billenytűesemény esetén: billentyű azonosítója pos_x, pos_y: egérmozgatás esetén: az egérkurzor pozíciója button: egéresemény (gomb) esetén: egérgomb azonosítója: btn_left, btn_right, btn_middle, btn_wheelup, btn_wheeldown time: időzítőesemény esetén: a program indítása óta eltelt idő millisec-ben 2 / 1
14 event adattagjai, lehetséges értékek type: esemény típusa: ev_key, ev_mouse, ev_timer keycode: billenytűesemény esetén: billentyű azonosítója pos_x, pos_y: egérmozgatás esetén: az egérkurzor pozíciója button: egéresemény (gomb) esetén: egérgomb azonosítója: btn_left, btn_right, btn_middle, btn_wheelup, btn_wheeldown time: időzítőesemény esetén: a program indítása óta eltelt idő millisec-ben 2 / 1
15 event adattagjai, lehetséges értékek type: esemény típusa: ev_key, ev_mouse, ev_timer keycode: billenytűesemény esetén: billentyű azonosítója pos_x, pos_y: egérmozgatás esetén: az egérkurzor pozíciója button: egéresemény (gomb) esetén: egérgomb azonosítója: btn_left, btn_right, btn_middle, btn_wheelup, btn_wheeldown time: időzítőesemény esetén: a program indítása óta eltelt idő millisec-ben 2 / 1
16 event adattagjai, lehetséges értékek type: esemény típusa: ev_key, ev_mouse, ev_timer keycode: billenytűesemény esetén: billentyű azonosítója pos_x, pos_y: egérmozgatás esetén: az egérkurzor pozíciója button: egéresemény (gomb) esetén: egérgomb azonosítója: btn_left, btn_right, btn_middle, btn_wheelup, btn_wheeldown time: időzítőesemény esetén: a program indítása óta eltelt idő millisec-ben 2 / 1
17 Eseményciklus Az eseményciklus a grafikus alkalmazás egyik fő ciklusa. Amíg ez a ciklus fut, addig a program képes eseményeket fogadni. 3 / 1
18 Példa Példa: Bal egérkattintásra változtassuk meg a képernyő hátterének színét egy új, véletlenszerű színre! #include "graphics.hpp" using namespace genv; const int SX = 400; const int SY = 400; int main() { srand(time(0)); gout.open(sx, SY); 4 / 1
19 } event ev; while(gin >> ev) { if (ev.button == btn_left) { gout << color(rand() % 256, rand() % 256, rand() % 256) << move_to(0,0) << box(sx,sy) << refresh; } } return 0; 5 / 1
20 Példa: Bal egérkattintásra rajzoljunk ki egy 20x20-as sárga négyzetet az adott egérpozícióba! Az alkalmazás escape-re lépjen ki! #include "graphics.hpp" #include <algorithm> using namespace genv; const int SX = 640; const int SY = 480; int main() { gout.open(640, 480); 6 / 1
21 event ev; while (gin >> ev) { if (ev.button == btn_left) { gout << move_to(ev.pos_x, ev.pos_y) << color(255,255,0) << box(20,20) << refresh; } else if (ev.keycode == key_escape) { exit(0); } } } return 0; 7 / 1
22 Fejlesszük tovább: írjunk a doboz rajzolására, illetve a véletlen szín generálására függvényt! Valamint az enter lenyomására mentse el a képet output.bmp néven! #include "graphics.hpp" #include <algorithm> using namespace genv; void draw_box(int x, int y, color c, int size) { gout << move_to(x, y) << c << box(size, size); } color rand_color() { color ret(rand() % 256, rand() % 256, rand() % 256); return ret; } 8 / 1
23 int main() { gout.open(640, 480); event ev; while (gin >> ev) { if (ev.button == btn_left) { draw_box(ev.pos_x, ev.pos_y, rand_color(), (rand() % 10) + 20); gout << refresh; } else if (ev.keycode == key_escape) { exit(0); } else if (ev.keycode == key_enter) { gout.save("output.bmp"); } } return 0; } 9 / 1
24 Timer az időzítőt a gin.timer(int ms) függvénnyel tudjuk beállítani, és elindítani Paraméterként millisec-ben kell megadni a periódust, így minden megadott ms-ben generál egy időzítő eseményt kikapcsolni így lehet: gin.timer(0) időzítőesemény esetén az event type mezője az ev_timer értéket veszi föl a time mező pedig az addig eltelt ezredmásodpercek számát 10 / 1
25 Timer az időzítőt a gin.timer(int ms) függvénnyel tudjuk beállítani, és elindítani Paraméterként millisec-ben kell megadni a periódust, így minden megadott ms-ben generál egy időzítő eseményt kikapcsolni így lehet: gin.timer(0) időzítőesemény esetén az event type mezője az ev_timer értéket veszi föl a time mező pedig az addig eltelt ezredmásodpercek számát 10 / 1
26 Timer az időzítőt a gin.timer(int ms) függvénnyel tudjuk beállítani, és elindítani Paraméterként millisec-ben kell megadni a periódust, így minden megadott ms-ben generál egy időzítő eseményt kikapcsolni így lehet: gin.timer(0) időzítőesemény esetén az event type mezője az ev_timer értéket veszi föl a time mező pedig az addig eltelt ezredmásodpercek számát 10 / 1
27 Timer az időzítőt a gin.timer(int ms) függvénnyel tudjuk beállítani, és elindítani Paraméterként millisec-ben kell megadni a periódust, így minden megadott ms-ben generál egy időzítő eseményt kikapcsolni így lehet: gin.timer(0) időzítőesemény esetén az event type mezője az ev_timer értéket veszi föl a time mező pedig az addig eltelt ezredmásodpercek számát 10 / 1
28 Timer az időzítőt a gin.timer(int ms) függvénnyel tudjuk beállítani, és elindítani Paraméterként millisec-ben kell megadni a periódust, így minden megadott ms-ben generál egy időzítő eseményt kikapcsolni így lehet: gin.timer(0) időzítőesemény esetén az event type mezője az ev_timer értéket veszi föl a time mező pedig az addig eltelt ezredmásodpercek számát 10 / 1
29 #include "graphics.hpp" #include <algorithm> #include <sstream> using namespace genv; const int SX = 640; const int SY = 480; int main() { gout.open(sx, SY); event ev; gin.timer(100); std::stringstream ss; 11 / 1
30 } while (gin >> ev) { if (ev.type == ev_timer) { ss << "Eltelt ezredmasodpercek szama: " << ev.time; gout << move_to(0,0) << color(0,0,0) << box(sx,sy); gout << move_to(20,20) << color(255,255,0) << text( ss.str() ) ss.str(""); } else if (ev.keycode == key_escape) { exit(0); } } return 0; 12 / 1
31 Feladatok 2-1) Random irányba mozogjanak a dobozok! 2-2) Space leütésére változzon meg a színük! 2-3) Ha egy dobozra rákattintunk, tűnjön el! 13 / 1
32 Tagfüggvények a draw függvény a típushoz tartozik, vagyis egy művelete a Boxnak. A következő lépésben a függvényeket beemeljük tagfüggvénnyé, ezzel egy lépést tettünk a Box típus egységbezárásáért (enkapszuláció) 14 / 1
33 Tagfüggvények a draw függvény a típushoz tartozik, vagyis egy művelete a Boxnak. A következő lépésben a függvényeket beemeljük tagfüggvénnyé, ezzel egy lépést tettünk a Box típus egységbezárásáért (enkapszuláció) 14 / 1
34 Tagfüggvények a tagfüggvények úgyanúgy függvények látják, és módosíthatják a struct értékeit, ezért nem kell külön paraméterben átadni őket tagfüggvény hívása: [változónév].[tagfüggvény neve]() 15 / 1
35 Tagfüggvények a tagfüggvények úgyanúgy függvények látják, és módosíthatják a struct értékeit, ezért nem kell külön paraméterben átadni őket tagfüggvény hívása: [változónév].[tagfüggvény neve]() 15 / 1
36 Tagfüggvények a tagfüggvények úgyanúgy függvények látják, és módosíthatják a struct értékeit, ezért nem kell külön paraméterben átadni őket tagfüggvény hívása: [változónév].[tagfüggvény neve]() 15 / 1
37 struct Car { string name; int fuel; // current amount of fuel (liter) double consumption; // liter / 100km void go( int km ) { fuel -= (consumption / 100) * km; } void refuel( int liter ) { fuel += liter; } };... Car c; c.name = "Toyota"; c.fuel = 0; c.consumption = 5.5; c.refuel(10); c.go(2); 16 / 1
38 Konstruktor a konstruktor is egy tagfüggvény, ami a példányosításkor (deklaráláskor) fut le ha nem írunk egy struct-nak konstruktort, akkor fordításkor létrejön egy üres (és paraméternélküli) FONTOS! Ha megírunk egy konstruktort, akkor nem jön létre paraméternélküli! pl. az int-nek is van konstruktora: int a(10); Ekkor a kezdőértéke 10 lesz. 17 / 1
39 Konstruktor a konstruktor is egy tagfüggvény, ami a példányosításkor (deklaráláskor) fut le ha nem írunk egy struct-nak konstruktort, akkor fordításkor létrejön egy üres (és paraméternélküli) FONTOS! Ha megírunk egy konstruktort, akkor nem jön létre paraméternélküli! pl. az int-nek is van konstruktora: int a(10); Ekkor a kezdőértéke 10 lesz. 17 / 1
40 Konstruktor a konstruktor is egy tagfüggvény, ami a példányosításkor (deklaráláskor) fut le ha nem írunk egy struct-nak konstruktort, akkor fordításkor létrejön egy üres (és paraméternélküli) FONTOS! Ha megírunk egy konstruktort, akkor nem jön létre paraméternélküli! pl. az int-nek is van konstruktora: int a(10); Ekkor a kezdőértéke 10 lesz. 17 / 1
41 Konstruktor a konstruktor is egy tagfüggvény, ami a példányosításkor (deklaráláskor) fut le ha nem írunk egy struct-nak konstruktort, akkor fordításkor létrejön egy üres (és paraméternélküli) FONTOS! Ha megírunk egy konstruktort, akkor nem jön létre paraméternélküli! pl. az int-nek is van konstruktora: int a(10); Ekkor a kezdőértéke 10 lesz. 17 / 1
42 Konstruktor a konstruktor is egy tagfüggvény, ami a példányosításkor (deklaráláskor) fut le ha nem írunk egy struct-nak konstruktort, akkor fordításkor létrejön egy üres (és paraméternélküli) FONTOS! Ha megírunk egy konstruktort, akkor nem jön létre paraméternélküli! pl. az int-nek is van konstruktora: int a(10); Ekkor a kezdőértéke 10 lesz. 17 / 1
43 Konstruktor a konstruktor is egy tagfüggvény, ami a példányosításkor (deklaráláskor) fut le ha nem írunk egy struct-nak konstruktort, akkor fordításkor létrejön egy üres (és paraméternélküli) FONTOS! Ha megírunk egy konstruktort, akkor nem jön létre paraméternélküli! pl. az int-nek is van konstruktora: int a(10); Ekkor a kezdőértéke 10 lesz. 17 / 1
44 Konstruktor példa struct Person { std::string name; int age; Person(std::string name_, int age_) : name(name_), age(age_) {} }; 18 / 1
45 Konstruktorok FONTOS! A konstruktornak nincs visszatérési értéke (azt sem kell elé írni, hogy void)! neve mindig meg kell, hogy egyezzen a struct nevével! konstruktort nem lehet külön meghívni, a példányosításkor fut le a konstruktor rövidítése: ctor (ha rákerestek így (is) érdemes) 19 / 1
46 Konstruktorok FONTOS! A konstruktornak nincs visszatérési értéke (azt sem kell elé írni, hogy void)! neve mindig meg kell, hogy egyezzen a struct nevével! konstruktort nem lehet külön meghívni, a példányosításkor fut le a konstruktor rövidítése: ctor (ha rákerestek így (is) érdemes) 19 / 1
47 Konstruktorok FONTOS! A konstruktornak nincs visszatérési értéke (azt sem kell elé írni, hogy void)! neve mindig meg kell, hogy egyezzen a struct nevével! konstruktort nem lehet külön meghívni, a példányosításkor fut le a konstruktor rövidítése: ctor (ha rákerestek így (is) érdemes) 19 / 1
48 Feladatok 2-2-a) Hópihe: egy hópihe egy fehér pixel. Legyen 100 darab hópihe, amik konstans sebességgel "esnek" le. Ha alul kimegy, felül jöjjön be! 2-2-b) Jobbra-balra imbolyogjanak a pihék! (ha oldalt kimegy, a másik oldalon jöjjön be!) 2-2-c) Legyen mélysége: a közelebb álló pihék legyenek nagyobbak és gyorsabban hulljanak! 20 / 1
49 Feladatok (folyt.) 2-3-a) Egy random pozícióba lerakott doboz kövesse az egeret. 2-3-b) Több doboz is legyen, mindegyik az egeret kövesse! 21 / 1
50 Házi feladat A honlapon elérhető (lesz). 22 / 1
Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba II 1. gyakorlat A grafikus könyvtár használata, alakzatok rajzolása 2014.02.10. Giachetta Roberto groberto@inf.elte.hu
Bevezetés a programozásba 2
Bevezetés a programozásba 2 4. Előadás: Esettanulmány http://digitus.itk.ppke.hu/~flugi/ Pong játék Játékleírás: adott egy pálya, alul és fölül fallal, és két játékoshoz tartozó egy-egy ütő két oldalon.
Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum
Bevezetés a programozásba 2 1. Előadás: Tagfüggvények, osztály, objektum Ismétlés int main() { string s; s; s= bla ; cout
Bevezetés a programozásba I.
Bevezetés a programozásba I. 9. gyakorlat Intelligens tömbök, mátrixok, függvények Surányi Márton PPKE-ITK 2010.11.09. C++-ban van lehetőség (statikus) tömbök használatára ezeknek a méretét fordítási időben
Ugráló gomb oktatási segédlet Ugráló gomb
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
Bevezetés a programozásba Előadás: A const
Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout
BME MOGI Gépészeti informatika 14.
BME MOGI Gépészeti informatika 14. 1. feladat Készítsen alkalmazást, mely a képernyő közepére egy véletlen színnel kitöltött kört rajzol! A színváltást nyomógomb segítségével oldja meg! A rajzolást a form
Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.
3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME
SDI ALKALMAZÁS I. Feladat: Készítsünk egy olyan alkalmazást, amely az év végi adózás céljából rögzíti egyetlen évközi bevételnek az adatait: bruttó jövedelem adóel ı leg nettó bevétel jövedelem forrása
Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.
Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat
Programozás II gyakorlat. 8. Operátor túlterhelés
Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,
Informatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
C++ Standard Template Library (STL)
Programozási Nyelvek és Fordítóprogramok Tanszék Programozási Nyelvek I. Témák 1 STL alapok 2 STL fogalmak 3 Konténerek 4 Iterátorok 5 Funktorok C++ STL Ne fedezzük fel újra spanyolviaszt! Sok adatszerkezet/algoritmus
Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)
Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,
Delphi programozás I.
Delphi programozás I. Konzol alkalmazások készítése Delphiben A Delphi konzol alkalmazása (console application) olyan 32 bites program, amely nem grafikus felületen, hanem egy szöveges konzol ablakban
Bevezetés a programozásba I.
Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk
500. AA Megoldó Alfréd AA 500.
Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden
Bevezetés a programozásba. 11. Előadás: Esettanulmány
Bevezetés a programozásba 11. Előadás: Esettanulmány ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double
Számítógép és programozás 2
Számítógép és programozás 2 10. Előadás Öröklődés http://digitus.itk.ppke.hu/~flugi/ Tagfüggvény struct Particle { int x,y; unsigned char r,g,b; void rajzol() { gout
OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.
OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek
4. Öröklődés. Programozás II
4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()
1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon
1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító
Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:
Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba
Algoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban
OOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
Programozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia
Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek
Programozás alapjai 9.Gy: Struktúra 2.
Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).
Form1 Form Size 400;400 Text Mozgó kör timer1 Timer Enabled True Interval 100
BME MOGI Gépészeti informatika 16. 1. feladat Írjon alkalmazást, melyben egy 4 pixel sugarú, pirosra kifestett kört egy másik körön mozgat! A mozgást időzítő vezérelje! Megoldási mód: Windows Forms alkalmazás
Programozás II gyakorlat. 4. Öröklődés
Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési
Programozás II. 4. Dr. Iványi Péter
Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include
Osztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
Programozás C++ -ban 2007/7
Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum
Bevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
Bánsághi Anna 2014 Bánsághi Anna 1 of 33
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem
C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real
Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok
Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)
Mérési adatgyűjtés és adatfeldolgozás 2. előadás
Mérési adatgyűjtés és adatfeldolgozás 2. előadás BME TTK Fizika Tanszék 2011/2012 tavaszi félév Copyright 2008-2009 Geresdi Attila, Halbritter András Számítógépes mérésvezérlés Az előző rész tartalmából
Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union
Programozás alapjai C nyelv 10. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.21. -1- Standard függvények Standard függvények amelyeket
Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte.
Programozási alapismeretek :: beadandó feladat Készítő adatai Név: Molnár Tamás EHA: MOTIABT.ELTE E-mail cím: motiabt@inf.elte.hu Gyakorlatvezető: Horváth László Feladat sorszáma: 23. Felhasználói dokumentáció
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok
Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális
503.AA Megoldo Arisztid 503.A
Programozás alapjai 2. (inf.) 2. ZH 2017.04.27. gy./l. hiány: / ABCD123 Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de csak a feladatlapra írt megoldásokat értékeljük!
Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés
Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;
Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.
Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 25. Osztályok C++ osztályok Bevezetés Objektum-orientáltság
500. CC Megoldó Alfréd CC 500.
Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: G1/IB.146 Hiány:3 ZH:7,71 MEGOLD SCH/500. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
Johanyák Zsolt Csaba: Grafikus felület programozása. http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba
Johanyák Zsolt Csaba: Grafikus felület programozása http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba 1. Gyümölcsárazó automata Készítsünk egy gyümölcsárazó
Gregorics Tibor Tanácsok modularizált programok készítéséhez 1
Gregorics Tibor Tanácsok modularizált programok készítéséhez 1 Modularizált programon azt értjük, amely több, jól körülhatárolható részfeladat megoldásaiból épül fel. Egy-egy részfeladat gyakran szabványos
Bevezetés a programozásba I.
Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig
BME MOGI Gépészeti informatika 15.
BME MOGI Gépészeti informatika 15. 1. feladat Készítsen alkalmazást a y=2*sin(3*x-π/4)-1 függvény ábrázolására a [-2π; 2π] intervallumban 0,1-es lépésközzel! Ezen az intervallumon a függvény értékkészlete
Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE
Programozás C nyelven. ELŐADÁS Sapientia EMTE 201-16 1 while vs. for int szam, s; cin >> szam; s = 0; while ( szam > 0 ){ s += szam%10; szam /= 10; cout szam;
VISUAL BASIC ALAPISMERETEK
11. Grafika VISUAL BASIC ALAPISMERETEK 11. Gyakorlat témaköre: Kiválasztógomb (Option Button) és a jelölőnégyzet (CheckBox) használata Kör, ellipszis (Circle) rajzolása. Circle (X, Y), Sugár, QBColor(Szín),
1.AA MEGOLDÓ BERCI AA 1.
Programozás alapjai 2. (inf.) 2. zárthelyi 2015.05.07. gyak./lab. hiányzás: 3/2 Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de csak a feladatlapra írt megoldásokat
Objektumorientált programozás IX. Osztályok, objektumok
Objektumorientált programozás IX. Osztályok, objektumok 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem
http:www.johanyak.hu Analóg óra Készítsünk egy analóg órát megjelenítő alkalmazást. A feladat egy lehetséges megoldása a következő: 1. Az alkalmazás vázának automatikus generálása Fájl menü, New, Project
Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs
Szabadkai Műszaki Szakfőiskola Web programozás dr Zlatko Čović chole@vts.su.ac.rs 1 DOM események (events) JavaScriptben interaktív programok készítésére az események által vezérelt programozási modellt
Gyakorlati vizsgatevékenység A
Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés
Programozási technológia
Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi
A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába
A lista eleme 0 adat rész mutató rész Listaelem létrehozása p: Node 0 0 3 0 Az elemet nekünk kell bef zni a listába Deklarálás struct Node { int int value; Node* next; next; adattagok Létrehozás Node*
Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1
Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető
Programozás I gyakorlat. 5. Struktúrák
Programozás I gyakorlat 5. Struktúrák Bemelegítés Írj programot, amely beolvassa 5 autó adatait, majd kiírja az adatokat a képernyőre. Egy autóról a következőket tároljuk: maximális sebesség fogyasztás
Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer
Objektumok és osztályok Az objektumorientált programozás alapjai Rajzolás tollal, festés ecsettel A koordinátarendszer A vektorgrafikában az egyes grafikus elemeket (pontokat, szakaszokat, köröket, stb.)
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. // változó deklaráció int number1; // első szám int number2; // második szám int sum; // eredmény std::cout
C++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.
11. gyakorlat Sturktúrák használata I. Új típus új műveletekkel 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. typedef struct datum { int ev; int ho; int nap;
Apple Swift kurzus 3. gyakorlat
Készítette: Jánki Zoltán Richárd Dátum: 2016.09.20. Apple Swift kurzus 3. gyakorlat Kollekciók: Tömb: - let array = [] - üres konstans tömb - var array = [] - üres változó tömb - var array = [String]()
Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó
Szerző Név: Lővei Péter ETR-azonosító: LOPSAAI.ELTE Drótposta-cím: petyalovei@gmail.com Kurzuskód: IP-08PAEG/25 Gyakorlatvezető neve: Daiki Tennó Feladatsorszám: 11 1 Tartalom Szerző... 1 Tartalom... 2
Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
Bevezetés a programozásba I.
Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb
feladat pont min elért
NEPTUN kód: NÉV: Aláírás: Programozás 2. NZH, 2017. május 11. BME-TTK, fizika BSc Arcképes igazolvány hiányában nem kezdheted meg a ZH-t. A feladatok megoldására összesen 90 perc áll rendelkezésre. A feladatlapot
INFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1
STL gyakorlat C++ Izsó Tamás 2016. május 9. Izsó Tamás STL gyakorlat/ 1 Komponensek kapcsolata Deklarálja az alábbi osztálydiagramon szereplő osztályok közül az A, AA és AB osztályokat! A konstruktorokat
Objektumok inicializálása
Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
Bevezetés a programozásba. 9. Előadás: Rekordok
Bevezetés a programozásba 9. Előadás: Rekordok ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double terulet(double
Programozás C++ -ban
Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több
C# osztályok. Krizsán Zoltán
C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC
ISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor
Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig
Programozási Nyelvek: C++
Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();
Programozás alapjai 8.Gy: Program struktúra
Programozás alapjai 8.Gy: Program struktúra Elvarázsolt matekóra P R O A L A G 32/1 B ITv: MAN 2018.11.02 Programozás történelem Kezdetben egy program egyetlen kódsorozat volt (ún. monolitikus program)
Informatika feladatmegoldó verseny. Kiss Elemér Szakkollégium február 19. Dr. Kovács Lehel István
Informatika feladatmegoldó verseny Kiss Elemér Szakkollégium 2013. február 19. Dr. Kovács Lehel István Állás Összesítő Új feladat 5. forduló 4. Feladat A prímszámok generálása ősi matematikai feladat.
OOP: Java 5.Gy: Osztály, referencia, konstruktor
OOP: Java 5.Gy: Osztály, referencia, konstruktor 36/1 B ITv: MAN 2019.03.10 Osztály fogalma A Circle osztály definíciója: public class Circle { private int cx; private int cy; private int rad; public Circle(int
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok
Grafikus felhasználói felületek, eseménykezelés
Programozási Grafikus felhasználói felületek, eseménykezelés alapjai Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 alapjai 3 alapjai 2 alapjai Egészítsük ki a már korábban elkészített Számláló
Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
Maximum kiválasztás tömbben
ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while
Programozás C++ -ban 2007/4
Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos
Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} };
A C++ kódokban lévő makrókat melyik egység dolgozza fel az alábbiak közül? preprocessor A szabványos C++-ban nem is írhatunk makrókat (csak C-ben) assembler linker Az alábbi példában a Foo f(5); konstruktor
Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
Bevezetés a programozásba Előadás: Fordítási egység
Bevezetés a programozásba 2 5. Előadás: Fordítási egység ISMÉTLÉS Tagfüggvény kiemelése struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; void Particle::rajzol() { gout
500.AA Megoldo Arisztid 500.A
Programozás alapjai 2. (inf.) 2. ZH 2018.05.07. lab. hiányzás: 1+2 a/a/1 ABCD123 a/1. kzh: 4 E:3 Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de csak a feladatlapra