3. Osztályok II. Programozás II

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "3. Osztályok II. Programozás II"

Átírás

1 3. Osztályok II. Programozás II

2 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 el kell látni függvényekkel, hogy a listához új neveket adhassunk, illetve lekérdezhessük azokat. 2

3 Bevezető feladat add: A paraméterében megadott stringet hozzáadja a névsorhoz, ha ez már nem lehetséges, akkor hamis értékkel tér vissza, egyébként igazzal nevekszama: Visszaadja az eddig eltárolt neveket nev: Visszaadja a paraméterben megadott indexü nevet (az index 0-ról indul) 3

4 Megoldás class Nevsor { string * nevek; int kapacitas; int elemekszama; public: Nevsor(int mennyi) { nevek = new string[mennyi]; kapacitas = mennyi; elemekszama = 0; 4

5 Megoldás bool add(const string & ujnev) { if (elemekszama < kapacitas) { nevek[elemekszama] = ujnev; elemekszama++; return true; return false; int nevekszama() const { return elemekszama; const string & nev(int index) const { return nevek[index]; ; 5

6 Megoldás int main() { Nevsor avengers(5); avengers.add("hulk"); avengers.add("iron Man"); cout << avengers.nevekszama() << endl; int index; for (index = 0; index < avengers.nevekszama(); index++) { cout << avengers.nev(index) << endl; return 0; 6

7 Sor 0 Hulk 1 Iron Man elemekszama = 2 kapacitas = 5 7

8 Felszabadítás A Nevsor osztály tartalmaz egy mutatót egy dinamikusan lefoglalt tömbre A tömböt fel kell szabadítani A program vége előtt hívjunk meg egy clear függvényt? avengers.clear(); return 0; 8

9 Felszabadítás A Nevsor osztály tartalmaz egy mutatót egy dinamikusan lefoglalt tömbre A tömböt fel kell szabadítani A program vége előtt hívjunk meg egy clear függvényt? avengers.clear(); return 0; 9

10 Destruktor A konstruktor ellentéte, akkor hívódik meg, mikor az objektum megszűnik Felszabadításra használjuk Szintaktika: ~ jel után az osztály neve Csak egy destruktor van, nincsen paramétere Nincsen visszatérési érték típus a függvény neve előtt 10

11 class Nevsor { public: Destruktor string * nevek; int kapacitas; int elemekszama; ~Nevsor() { Hullám vonal delete [] nevek; Nincsen visszatérési érték típus Az osztály neve 11

12 Destruktor Fontos! Ha tömböt szabadítunk fel, akkor a delete után kötelező a [] Ennek hatására a tömbben lévő minden objektumra meghívódik a destruktor Ha elhagyjuk a []-t akkor csak a tömb első elemére hívódik meg a destruktor 12

13 Mi történik? void foo(nevsor lista) { lista.add("deadpool"); int main() { Nevsor avengers(3); avengers.add("hulk"); foo(avengers); avengers.add("iron Man"); 13

14 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor 14

15 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers kapacitas =? elemekszama =? nevek =? class Nevsor { public: Nevsor(int mennyi) { nevek = new string [mennyi]; kapacitas = mennyi; elemekszama = 0; 15

16 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers kapacitas =? elemekszama =? nevek class Nevsor { public: Nevsor(int mennyi) { nevek = new string [mennyi]; kapacitas = mennyi; elemekszama = 0;

17 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama =? nevek class Nevsor { public: Nevsor(int mennyi) { nevek = new string [mennyi]; kapacitas = mennyi; elemekszama = 0;

18 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 0 nevek class Nevsor { public: Nevsor(int mennyi) { nevek = new string [mennyi]; kapacitas = mennyi; elemekszama = 0;

19 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 0 nevek class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++;

20 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 0 nevek class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man

21 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man

22 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek Iron Man 22

23 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek

24 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek 1 Deadpool 2 24

25 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man Nevsor avengers elemekszama = 1 nevek lista elemekszama = 2 nevek 1 Deadpool 2 25

26 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista elemekszama = 2 nevek class Nevsor { public: ~Nevsor() { delete [] nevek; 0 Iron Man 1 Deadpool 2 26

27 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man 1 Deadpool 2 27

28 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man 1 Deadpool 2 28

29 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 29

30 Probléma A másolatban lévő pointer ugyanarra a tömbre mutatott, mint az eredeti objektum pointere 2 probléma: A másolat objektum felszabadította a tömböt Ha másolatként adunk át valamit, akkor azt várjuk, hogy a másolat ne legyen kapcsolatban az eredeti objektummal 30

31 Probléma Az objektumhoz fizikailag nem tartozik hozzá a tömb, csak a rá mutató pointer A másolat létrehozásakor alap esetben csupán az objektum tagváltozói másolódnak le Mi azonban tudjuk, hogy magát a tömböt is le kell másolni 31

32 Másoló konstruktor Nevsor(const Nevsor & masik) { kapacitas = masik.kapacitas; elemekszama = masik.elemekszama; nevek = new string[kapacitas]; int i; for (i = 0; i < elemekszama; i++) { nevek[i] = masik.nevek[i]; 32

33 Másoló konstruktor A paraméter a lemásolandó objektum referenciája Akkor hívódik meg, mikor másolat jön létre az objektumról, például érték szerinti paraméterátadáskor A referencia kötelező, különben a másoló konstruktor hívásakor végtelen ciklus alakulna ki 33

34 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista kapacitas =? elemekszama =? nevek =? Nevsor(const Nevsor & masik) { kapacitas = masik.kapacitas; elemekszama = masik.elemekszama; nevek = new string[kapacitas]; int index; for (index = 0; index < elemekszama; index++) { nevek[index] = masik.nevek[index]; 0 Iron Man

35 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista elemekszama =? nevek =? Nevsor(const Nevsor & masik) { kapacitas = masik.kapacitas; elemekszama = masik.elemekszama; nevek = new string[kapacitas]; int index; for (index = 0; index < elemekszama; index++) { nevek[index] = masik.nevek[index]; 0 Iron Man

36 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek =? Nevsor(const Nevsor & masik) { kapacitas = masik.kapacitas; elemekszama = masik.elemekszama; nevek = new string[kapacitas]; int index; for (index = 0; index < elemekszama; index++) { nevek[index] = masik.nevek[index]; 0 Iron Man

37 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek Nevsor(const Nevsor & masik) { kapacitas = masik.kapacitas; elemekszama = masik.elemekszama; nevek = new string[kapacitas]; int index; for (index = 0; index < elemekszama; index++) { nevek[index] = masik.nevek[index]; 0 Iron Man

38 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek Nevsor(const Nevsor & masik) { kapacitas = masik.kapacitas; elemekszama = masik.elemekszama; nevek = new string[kapacitas]; int index; for (index = 0; index < elemekszama; index++) { nevek[index] = masik.nevek[index]; 0 Iron Man 0 Iron Man

39 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man 0 Iron Man Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek Deadpool 2 39

40 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek lista elemekszama = 1 nevek class Nevsor { public: ~Nevsor() { delete [] nevek; 0 Iron Man 0 Iron Man Deadpool 40

41 Működés void foo(nevsor lista) { lista.add("deadpool"); [ ] Nevsor avengers(3); avengers.add("iron Man"); foo(avengers); avengers.add("hulk"); Nevsor avengers elemekszama = 1 nevek class Nevsor { public: bool add(const string & ujnev) { [ ] nevek[elemekszama] = ujnev; elemekszama++; 0 Iron Man 1 Hulk 2 41

42 Megjegyzés A másoló konstruktor (mint minden konstruktor) akkor hívódik meg, ha a létrejövő objektum egy másik másolata lesz Point2D a, b; Másoló konstruktor Point2D c = a; b = a; b már létezik, tehát nem a másoló konstruktor hívódik meg, hanem valami más 42

43 Több forráskódból álló programok main.cpp point2d.cpp line.cpp 41

44 Több forráskódból álló programok main.cpp point2d.cpp line.cpp Fordító main.o gépikód Point2D a; a.setx(21); Hova ugorjon a program a setx függvény meghívásakor? 42

45 Több forráskódból álló programok main.cpp point2d.cpp line.cpp Fordító main.o gépikód Point2D a; a.setx(21); Hova ugorjon a program a setx függvény meghívásakor? point2d.o setx gépi kódja line.o gépi kód 43

46 Több forráskódból álló programok main.o gépi kód Point2D a; a.setx ->? point2d.o setx gépi kódja line.o gépi kód Linker Az elkészült program a.setx -> setx gépi kódja 44

47 Több forrásfájlból álló programok Fontos: A forrásfájlokat egymástól függetlenül kell lefordítani Probléma: Ha a main.cpp forrásfájlban hivatkozunk a Point2D osztályra, amely a point2d.cpp-ben van, akkor a main.cpp nem fordítható le, mivel annak fordításakor a fordító nem ismeri a Point2D osztályt. 47

48 Több forrásfájlból álló programok Megoldás: Helyezzük el a main.cpp-ben a Point2D osztály deklarációját: class Point2D { double x, y; string name; public: const string & getname() const; Point2D(const string & nev); double length() const; void setx(double x); void sety(double y); double getx() const; double gety() const; ; 48

49 Több forrásfájlból álló programok Ennek a deklarációnak egyeznie kell azzal, amit a point2d.cpp-ben megvalósítunk. Ötlet: Helyezzük el ezt a deklarációt egy külön header fájlban, a point2d.h-ban! A point2d.h-t include-oljuk minden fájlban, ahol a Point2D osztályra hivatkozunk (például main.cpp, point2d.cpp) 49

50 Több forrásfájlból álló programok point2d.h tartalma: #ifndef POINT2D_H_ #define POINT2D_H_ class Point2D { [ ] ; #endif header guard, hogy ne okozzon gondot, ha ezt a fájlt több fájlba is include-oljuk 50

51 Több forrásfájlból álló programok point2d.cpp-ben pedig elhelyezzük az osztály tagfüggvényeinek a definícióit: #include point2d.h Point2D::Point2D(const string & nev): name(nev){ x = 0; y = 0; double Point2D::length() { return sqrt(x * x + y * y); Jelezzük, hogy melyik osztály függvényeiről van szó 51

52 Feladat Írj egy Halmaz osztályt, amely egész számokat tárol 0-tól N-1-ig. Az osztály konstruktora megkapja paraméterben az N értékét, és üresre inicializálja az objektumot. Írd meg a konstruktort, destruktort, másoló konstruktort. A Halmaz osztály számára készíts külön header és forrás fájlt! 52

53 Feladat A Halmaz osztály függvényei: hozzaad(int) : Hozzáadja a halmazhoz a paraméterben megadott értéket, ha az kisebb, mint N, és nem negatív, egyébként nem csinál semmit kivon(int) : Az előző függvény ellentéte, eltávolítja a paraméterben megadott értéket mennyi: Megadja, hogy mennyi számot tárolunk jelenleg a halmazban 53

54 Házi feladat Az eddigi házi feladatokban megírt forráskódot bontsd szét több forrásfájlra. Az osztályoknak legyen 1-1 külön header és forrás fájljuk. Mostantól minden osztályt így kell megírni a házi feladatokban 54

55 Házi feladat Módosítsd a Lovag osztályt úgy, hogy a benne lévő 10 elemű tömb helyett egy dinamikusan növekvő tömbbel helyettesítsd A tömb kezdetben 0 elemet tartalmaz Minden új tárgy hozzáadásakor megnöveljük a tömb méretét 1-el 55

56 Házi feladat Tipp: A tömböt minden bővítéskor foglaljuk újra, majd a régi tömb tartalmát másoljuk az újba, a régit pedig szabadítsuk fel A hozzáadó függvénynek nem kell logikai értékkel visszatérnie Gondoskodj a tömb megfelelő felszabadításáról, és biztosítsd a Lovag helyes lemásolását is 56

57 Házi feladat Írj egy Menu osztályt, amely egy menüt kezel Az osztály menüpontokat tárol, a menüpont egy megjelenítendő feliratból, és egy rövid, egyedi string azonosítóból áll A menüpontokat szintén dinamikusan növekvő tömbben tároljuk Példa: A lovag adatai listázás menüpontjának felirata: Lovag adatai, azonosítója: adatok 57

58 Házi feladat A Menu objektumok kezdetben egy menüpontot se tárolnak Írj függvényt, amellyel új menüpontot adhatunk a menühöz, a függvénynek meg kell adni a feliratot és az azonosítót A függvény térjen vissza igaz értékkel, ha a megadott azonosítóval még nem létezik menüpont, és ekkor tárolja is el az új menüpontot, egyébként hamissal térjen vissza, és ne bővítse a menüpont listát 58

59 Házi feladat Írj függvényt a Menu osztályhoz, amely kiírja a menüpontokat a képernyőre A függvény egy sorba írja a menüpontot, majd utána az azonosítóját, például: Lovag adatainak listázása : adatok Új tárgy hozzáadása : targyad Kilépés : kilep 59

60 Házi feladat Írj függvényt a Menu osztályhoz, amelynek átadhatunk egy stringet. Ha a megadott string (menü azonosító), már egy létező azonosító, akkor a függvény hamis, ellenkező esetben pedig igaz értékkel térjen vissza, és csak ez esetben adja hozzá a menüpontot a listához Gondoskodj a megfelelő felszabadításról, és a helyes másoló konstruktorról 60

61 Házi feladat Az eddigi statikus menüt cseréld ki az új Menu osztállyal A program hozzon létre egy objektumot a Menu osztályból A program először töltse fel a Menu objektumot menüpontokkal Az objektum hozzáadó függvény hamis visszatérési értéke esetén a program hibaüzenettel lépjen ki 61

62 Házi feladat A menü kirajzolását a létrehozott objektum végezze el A programban most már ne számokkal, hanem az azonosítók beírásával lehessen menüt választani Ha nem létező azonosítót írunk be, akkor adjon hibaüzenetet a program (az ellenőrzéshez használjuk a menü objektumot) 62

63 Házi feladat Fontos: A Menu osztály csupán abban segít, hogy a menüt kiírjuk, azt alkalomadtán bővíteni tudjuk, illetve ellenőrizhessük a segítségével, hogy helyes menüpontot választottunk-e A Menu osztályhoz nem tartoznak hozzá az egyes menüpontokhoz tartozó funkciók, azokat továbbra is a fő forrásfájlban kell megvalósítani 63

Programozás II gyakorlat. 8. Operátor túlterhelés

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,

Részletesebben

1. Alapok. Programozás II

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

Részletesebben

C++ programozási nyelv Konstruktorok-destruktorok

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

Részletesebben

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

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

Részletesebben

4. Öröklődés. Programozás II

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()

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Programozás II gyakorlat. 6. Polimorfizmus

Programozás II gyakorlat. 6. Polimorfizmus Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással

Részletesebben

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 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 (

Részletesebben

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

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

Részletesebben

Bevezetés a programozásba Előadás: A const

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

Részletesebben

BME MOGI Gépészeti informatika 7.

BME MOGI Gépészeti informatika 7. BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java 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. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

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

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása. Feladat Készítsen egy egész számokat tartalmazó zsák típust! A zsákot dinamikusan lefoglalt tömb segítségével ábrázolja! Implementálja a szokásos műveleteket (elem betevése, kivétele, üres-e a halmaz,

Részletesebben

Objektumok inicializálása

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ú

Részletesebben

500. AA Megoldó Alfréd AA 500.

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

Részletesebben

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 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)

Részletesebben

Osztály és objektum fogalma

Osztály és objektum fogalma Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály

Részletesebben

Pénzügyi algoritmusok

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

Részletesebben

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

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

Részletesebben

Programozás alapjai II. (4. ea) C++

Programozás alapjai II. (4. ea) C++ Programozás alapjai II. (4. ea) C++ konstruktor és értékadás, dinamikus szerkezetek Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.03.01. -1-

Részletesebben

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 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,

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új

Részletesebben

Programozás C++ -ban 2007/7

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

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira Programozás II gyakorlat 7. Példák a polimorfizmus alkalmazásaira Probléma class A { public: ~A() { cout

Részletesebben

Programozási Nyelvek: C++

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();

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

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;

Részletesebben

Virtuális függvények (late binding)

Virtuális függvények (late binding) Virtuális függvények (late binding) Miskolci Egyetem Általános Informatikai Tanszék Virtuális függvények CPP5 / 1 Azonos nevű függvények megkülönböztetése paraméterszignatúra (függvény overloading) - egy

Részletesebben

Programozás C++ -ban

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

Részletesebben

- 1 - Konstansok használata. Döntsük el, van-e fordítási idejű hiba az alábbi programrészletekben! a) const char * str="zh"; str[0]++;

- 1 - Konstansok használata. Döntsük el, van-e fordítási idejű hiba az alábbi programrészletekben! a) const char * str=zh; str[0]++; Az alábbi feladatokat a AUT.BME.HU tanszéki weboldalon fellelhető AUT C++ Példatárból másoltam ki. A feladatokat a Programozás alapjai 2. ZH-ra való felkészülés jegyében válogattam, a példák nagy részét

Részletesebben

Osztályok. 4. gyakorlat

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

Részletesebben

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!

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! 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! 3 A program eredménye! 3 Példa! 3 Hibalehetőségek! 3 Példa! 3 Fejlesztői dokumentáció!

Részletesebben

5. Gyakorlat. struct diak {

5. Gyakorlat. struct diak { Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus

Részletesebben

ISA szimulátor objektum-orientált modell (C++)

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

Részletesebben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

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

Részletesebben

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik

Részletesebben

8. gyakorlat Pointerek, dinamikus memóriakezelés

8. gyakorlat Pointerek, dinamikus memóriakezelés 8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

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

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

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód: Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...

Részletesebben

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. 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

Részletesebben

Programozás 2. gyakorlat

Programozás 2. gyakorlat Programozás 2. gyakorlat Kötelező programok listája Tartalom Első projektmunka feladatok (Határidő: október 15. 08:00)... 2 1. Intervallum... 2 2. Igazolvány... 3 3. Telefon... 4 4. Tanulmányi rendszer...

Részletesebben

Bevezetés a programozásba I.

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

Részletesebben

Bevezetés a programozásba I.

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

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Programozás II gyakorlat. 4. Öröklődé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

Részletesebben

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. 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*

Részletesebben

500. CC Megoldó Alfréd CC 500.

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,

Részletesebben

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

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

Részletesebben

Programozás C++ -ban 2007/4

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

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért

Részletesebben

0.2.1 Operátorok túlterhelése (műveletek definiálhatók felhaszn. típusokra) Kutya. Eb1. Eb2. Név (txt): Rex. Blöki. Német juhász 3

0.2.1 Operátorok túlterhelése (műveletek definiálhatók felhaszn. típusokra) Kutya. Eb1. Eb2. Név (txt): Rex. Blöki. Német juhász 3 0 Az objektum-orientáltság 0.1 Objektum fogalma Egy rendszer egyedileg azonosítható szereplője adatokkal és működéssel. Egységbezárás (encapsulation) - viselkedés a külvilág felé - belső struktúra (kívülről

Részletesebben

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre.

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre. C memóriakezelés Ez a kis segédanyag az adatszerkezetek órán használt eszközök megértését hivatott elősegíteni. A teljesség igénye nélkül kerül bemutatásra a mutató típus és a dinamikus memóriakezelés.

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

OOP #14 (referencia-elv)

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

Részletesebben

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

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

Részletesebben

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

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

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

Bevezetés, a C++ osztályok. Pere László

Bevezetés, a C++ osztályok. Pere László Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK

Részletesebben

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani. Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként

Részletesebben

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

Programozási nyelvek II. JAVA

Programozási nyelvek II. JAVA Programozási nyelvek II. JAVA 8. gyakorlat 2017. november 6-10. Általános tudnivalók A feladatmegoldás során fontos betartani az elnevezésekre és típusokra vonatkozó megszorításokat, illetve a szövegek

Részletesebben

C++ programozási nyelv Konstruktorok Gyakorlat

C++ programozási nyelv Konstruktorok Gyakorlat C++ programozási nyelv Konstruktorok Gyakorlat Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A C++ programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

Programozás C++ -ban

Programozás C++ -ban 8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási

Részletesebben

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Maximum kiválasztás tömbben

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

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:

Részletesebben

Programozási nyelvek II.: JAVA, 3. gyakorlat

Programozási nyelvek II.: JAVA, 3. gyakorlat Programozási nyelvek II.: JAVA, 3. gyakorlat 2017. szeptember 25-29. 2017. szeptember 25-29. Programozási nyelvek II.: JAVA, 3. gyakorlat 1 / 50 A 3. gyakorlat tematikája Osztályok deníciója Láthatósági

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

Cekla. Készítette Doxygen Tue Sep :13:44

Cekla. Készítette Doxygen Tue Sep :13:44 Cekla Készítette Doxygen 1.7.1 Tue Sep 20 2011 14:13:44 TARTALOMJEGYZÉK 1 Tartalomjegyzék 1. Cekla C++ könyvtár deklaratív C++-hoz 1 2. Modulmutató 1 2.1. Modulok............................................

Részletesebben

128. AA Megoldó Alfréd AA 128.

128. AA Megoldó Alfréd AA 128. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: Hiány:0 ZH: MEGOLD SEHOL/5. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

OOP: Java 4.Gy: Java osztályok

OOP: Java 4.Gy: Java osztályok OOP: Java 4.Gy: Java osztályok. 36/1 B ITv: MAN 2019.03.02 Feladat Készítsen el egy Employee osztályt és egy Employee osztályt használó osztályt (EmpProgram). Az Employee osztálynak: van name és salary

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

BME MOGI Gépészeti informatika 8.

BME MOGI Gépészeti informatika 8. BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező

Részletesebben

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek

Részletesebben

.AA Megoldó Alfréd AA.

.AA Megoldó Alfréd AA. Programozás alapjai 2. (inf.) pót zárthelyi 2013.05.23. gyak. hiányzás: kzh: ZH:0 ABCDEF MEG/200. Hftest: (p) Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 4. előadás 2014.03.03. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Programok

Részletesebben

C++ programozási nyelv Struktúrák a C++ nyelvben

C++ programozási nyelv Struktúrák a C++ nyelvben C++ programozási nyelv Struktúrák a C++ nyelvben 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/37 Bevezetés A

Részletesebben

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

Programozás II. 6.Öröklés Dr. Iványi Péter Programozás II. 6.Öröklés Dr. Iványi Péter 1 Öröklés Programozók lusta emberek, nem szeretnék valamit kétszer leírni Miért veszélyes? Nem hatékony Újra kell tárolni a kódot, újra le kell fordítani Karbantartás

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály

Részletesebben

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

Részletesebben

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

Részletesebben

Bevezetés a programozásba előadás: Öröklődés

Bevezetés a programozásba előadás: Öröklődés Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük. Függvények A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük. Mint egy dzsinn: Hogyan is "használunk" egy dzsinnt? megszólítjuk megmondjuk,

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a

Részletesebben