1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon
|
|
- Lili Soós
- 7 évvel ezelőtt
- Látták:
Átírás
1 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 ( double a, double b ) { return a>b? a : b ; i n l i n e UT1 Max ( UT1 a, UT1 b ) { return a>b? a : b ; Az unalmas munkát hagyjuk a fordítóra, megvalósítás sablonnal. T Max ( T a, T b ) { return a>b? a : b ; 1.2. Függvénysablon példányosítás Max sablon példányosítása. alapján. double x, y, r e s ; / /... a s s i g n i n g some v a l u e s t o x & y r e s = Max ( x 1,y ) ; / / Max<double > i n t m = Max ( 5, 1 3 ) ; / / Max<i n t > Sablon paramétert a fordító határozza meg a függvény paraméter típusa Ha nincs függvényparaméter, akkor hogyan lehet példányosítani a függvényt? T any ( void ) { / / r e t u r n a random v a l u e o f t y p e T ; Példányosítás explicit minősítővel. i n t i = any ( ) ; / / Hibás i n t i = any < i n t > ( ) ; / / OK 1.3. Osztálysablon Egyszerű egészeket tartalmazó stack osztály. c l a s s S t a c k { / / i m p l e m e n t a t i o n i n t t o p ; i n t S [ ] ; / / i n t e r f a c e S t a c k ( ) : t o p ( 1) { void push ( i n t V ) { S[++ t o p ] = V; i n t pop ( void ) { top ; return S [ t o p + 1 ] ; / / o t h e r o p e r a t i o n s... ; 1
2 Írjunk generikus stack osztályt, tetszőleges típusú adatok tárolására. A T típustól bizonyos operátorokat elvárunk, pl. =. c l a s s S t a c k { / / i m p l e m e n t a t i o n i n t t o p ; T S [ ] ; / / i n t e r f a c e S t a c k ( ) : t o p ( 1) { void push ( c o n s t T& V ) { S[++ t o p ] = V; T pop ( void ) { top ; return S [ t o p + 1 ] ; / / o t h e r o p e r a t i o n s... ; 1.4. Osztálysablon példányosítása Stack < i n t > i s t k ; Stack <double > d s t k ; Sablon paraméter egész érték is lehet. Adjuk meg a stack méretét sablon paraméteren keresztül. template <typename T, i n t N > c l a s s S t a c k { / / i m p l e m e n t a t i o n i n t t o p ; T S [N ] ; / / i n t e r f a c e S t a c k ( ) : t o p ( 1) { void push ( c o n s t T& V ) { S[++ t o p ] = V; T pop ( void ) { top ; return S [ t o p + 1 ] ; / / o t h e r o p e r a t i o n s... ; Stack < s t r i n g, 100> s s t k ; 1.5. sablonok definiálása Szokásos sablon definiálás. template <typename T> c l a s s C { C ( ) {... / / k o n s t r u k t o r név nem t í p u s ~C ( ) {... / / d e s t r u k t o r void f ( ) {... / / member f u n c t i o n ; 2
3 Sablon definiálás teljes formában template <typename T> c l a s s C { C<T > ( ) {... / / k o n s t r u k t o r ~C<T > ( ) {... / / d e s t r u k t o r void f ( ) {... / / member f u n c t i o n ; Hatványozó függvénysablon: template < unsigned N, typename T > T Power ( c o n s t T& v ) { T r e s = v ; f o r ( i n t i =1; i <N; i ++ ) r e s *= v ; return r e s ; void f ( ) { double d1 = Power < 5 > ( 1. 2 ) ; double d2 = Power <5, i n t > ( 1. 2 ) ; s t d : : c o u t << d1 << " " << d2 ; 1.6. Függvénysablon specializáció template < c l a s s T> bool cmp ( T c o n s t& a, T c o n s t& b ) { return a < b ; template < c l a s s T> bool cmp ( T* c o n s t& a, T* c o n s t& b ) { return * a < *b ; bool cmp ( c o n s t char * a, c o n s t char * b ) { return strcmp ( a, b ) <0; Faktoriális kiszámítása fordítási időben sablon felhasználásával. Nem biztos, hogy hasznos, de jó példa a specializálásra. template < unsigned N> unsigned long F a c t ( void ) { return N* Fact <N 1 >(); template <> unsigned long Fact <0 >( void ) { return 1 ; 1.7. Osztálysablon specializáció c l a s s C { / / common i m p l e m e n t a t i o n c l a s s C<T*> { / / i m p l e m e n t a t i o n f o r t h e s p e c i f i e d s u b s e t 3
4 1.8. Sablon paraméterek lehetséges specializálása const T konstans típus T* pointer T& hivatkozás (referencia) T[integer-constant] tömb type (*)(T) T típusú argumentummal rendelkező függvénypointer. T(*)() T visszatérési értékkel rendelkező függvénypointer. T(*)(T) T típusú argumentummal és visszatérési értékkel rendelkező függvénypointer Typename kulcsszó használata void f ( ) { typename T : : t 1 * m2 ; / / d e c l a r a t i o n T : : t 2 * m3 ; / / e x p r e s s i o n Függvény objektum template <typename T> c l a s s G r e a t e r { T v a l u e ; G r e a t e r ( c o n s t T& v ) : v a l u e ( v ) { bool operator ( ) ( c o n s t T& x ) c o n s t { return x> v a l u e ; / / i n l i n e ; template < typename T, typename Comparator > T* f i n d ( T* pool, i n t n, c o n s t Comparator& comp ) { T* p = pool ; f o r ( i n t i = 0 ; i <n ; i ++ ) { i f ( comp (* p ) ) return p ; / / s u c c e s s p ++; return 0 ; / / f a i l double A[ ] ; double * p = f i n d (A, 100, G r e a t e r <double > ( 5 ) ) ; 4
5 1.11. Alapadatok inicializálása template < template <typename, i n t > c l a s s Tomb, typename T, i n t N > o s t r e a m& operator < <( o s t r e a m& os, c o n s t Tomb<T, N>& t t ) { f o r ( i n t i =0; i <N; i ++) cout << t t. t [ i ] << ; return os ; template < c l a s s T, i n t N> c l a s s Tomb { T t [N ] ; Tomb ( ) { f o r ( i n t i = 0 ; i < N; i ++) t [ i ] = T ( ) ; / / G e n e r i k u s d e f a u l t. A l a p t í p u s o k n á l 0 T& operator [ ] ( i n t i ) { i f ( i < 0 i >= N) throw "Index hiba" ; return t [ i ] ; f r i e n d o s t r e a m& operator << <>( o s t r e a m& os, c o n s t Tomb<T, N>& t t ) ; ; Figyeljük meg az ostream& operator<< <>(...) deklarációjánál a <> üres template paramétert. Mivel a barát függvényt függvénysablonból állítjuk elő, ezért ezt jelezni kell. Ha a függvény paraméterből a fordító következtetni tud a sablon paraméterre, akkor a sablon paraméter lehet üres is. Ha nem írjuk ki, akkor a fordító automatikusan nem példányosítja a barát operátort és linkelési hiba keletkezik. A Tomb() konstruktorban a t[i] = T() értékadás a beépített típusokat inicializálja. Ha ez nincs, és int típusú adatokat tárolunk a tömbbe, akkor az elemek értéke nem meghatározott. Osztályok esetén viszont a tömb elemeit kétszer inicializáljuk. Hogyan lehet ezt elkerülni? Módosítsuk a konstruktort a következő módon: template < c l a s s T, i n t N> c l a s s Tomb { T t [N ] ; Tomb ( ) { i f (! I s C l a s s T <T > : : Yes ) { f o r ( i n t i = 0 ; i < N; i ++) t [ i ] = T ( ) ; / / G e n e r i k u s d e f a u l t. A l a p t í p u s o k n á l Írjuk meg a IsClassT<T> osztálysablont. template < typename T> c l a s s I s C l a s s T { template < c l a s s X> s t a t i c char T e s t ( i n t X: : * ) ; template < c l a s s X> s t a t i c long T e s t (... ) ; enum { Yes = s i z e o f ( I s C l a s s T <T > : : Test <T>( 0 ) ) == 1 ; enum { No =! Yes ; ; 5
6 A megoldáshoz részleges tagfüggvénysablon specializálást használhatunk. A Test() függvény különböző méretű adatot ad vissza, annak a függvényében, hogy milyen paraméterrel hívjuk. :: tagválasztó operátora csak osztályoknak (struktúráknak) lehet. A Test(int X::* ) egész tagváltozóra mutató pointert vár. Egyébként a Test(...) függvény játszik szerepet. Az IsClassT<T>::Test<T>(0) paramétere trükkösen 0, ami lehet egy memóriacím érték, de illeszkedik a változó függvényparaméter listára is. Ha a T sablon paraméter class, akkor a char Test(int X::*) függvényt generálja ki a fordító. A sizeof() operátor fordítási időben értékelődik ki, tehát csak az fontos, hogy a T sablon paraméterrel melyik tagfüggvényt példányosítja a fordító, de a függvény futási időben nem hívódik meg. Ezért a Test() függvényeket csak deklaráltuk, és nem definiáltuk. Akkor is a char Test(int X::*) függvényt példányosítja a fordító, ha olyan osztállyal példányosítjuk a sablont, aminek egyetlen tagváltozója sincs. Sajnos ezt a szép megoldást az általunk ismert fordítók nem értik, fordítási hiba keletkezik. Az IsClassTHelper belső struktúra bevezetésével azonban elegendő segítséget kapnak a fordítók, így már megbírkoznak a feladattal Az IsClassT template a izso/modtomb.cpp példaprogram segítségével tesztelhető. template <typename T> c l a s s I s C l a s s T { s t r u c t I s C l a s s T H e l p e r { template <typename X> s t a t i c char T e s t ( i n t X: : * ) ; template <typename X> s t a t i c long T e s t (... ) ; ; t y p e d e f I s C l a s s T H e l p e r H; enum { Yes = s i z e o f ( H : : template Test <T>( 0 ) ) == s i z e o f ( char ) ; enum { No =! Yes ; ; 6
7 Írjunk osztálysablont, ami eldönti, hogy az első paramétere konvertálható-e a második paraméterre. template < c l a s s T, c l a s s U> c l a s s C o n v e r s i o n { t y p e d e f char Small ; s t r u c t Big { char dummy [ 4 ] ; ; s t a t i c Small T e s t (U ) ; s t a t i c Big T e s t (... ) ; s t a t i c T MakeT ( ) ; enum{ e x i s t s = s i z e o f ( T e s t ( MakeT ( ) ))== s i z e o f ( Small ) ; ; 7
1. Bevezetés A C++ nem objektumorientált újdonságai 3
Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.
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
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
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ generikus szerkezetek, template újból 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.03.26.
1. Öröklés Rétegelés Nyilvános öröklés - isa reláció Korlátozó öröklődés - has-a reláció
1. Öröklés Az objektum orientált tervezés fontos sarkköve, az osztályok viszonyainak a megtervezése. 1.1. Rétegelés c l a s s Address {..... c l a s s Name {..... c l a s s P e r s o n { Name name ; Address
- 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
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ generikus szerkezetek, template 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. 2018.03.20.
C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:
C++ referencia Izsó Tamás 2017. február 17. 1. Bevezetés A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: Sokan összetévesztik a pointerrel. Keveset alkalmazzák
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
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)
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
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben
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
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
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
Programozás alapjai II. (6. ea) C++
Programozás alapjai II. (6. ea) C++ generikus szerkezetek, template Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.03.29. - 1 - Hol tartunk?
Programozás C++ -ban
Programozás C++ -ban 6. Konstansok A C nyelvben konstansokat makróval is deklarálhatunk. Ebben az esetben mindenhol ahol a makró előfordul a fordító a definiált értéket behelyettesíti a makró helyére.
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ú
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
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,
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;
C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag
C# osztálydeníció Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem.net C# technológiák tananyag objektum orientált programozás tananyag Tartalom 1 Bevezetés 2 Osztály létrehozása, deníció
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
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
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"
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
228. AA Default Konstruktor AA 228.
Programozás alapjai 2. (inf.) zárthelyi 2012.05.17. gyak. hiányzás: kzhpont: ABCDEF Q-II/107. nzh: Hftest: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
Programozás módszertan
Programozás módszertan p. Programozás módszertan Operátorok túlterhelése a C++ nyelvben Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA TANSZÉK Bevezetés Programozás
A C++ szigorúbban kezeli a típuseltéréseket, mint a C nyelv Lehetséges típuskonverziók:
Típuskonverzió a C++ nyelvben Miskolci Egyetem Általános Informatikai Tanszék Típus konverzió a C++ nyelvben CPP3 / 1 Lehetséges konverziók A C++ szigorúbban kezeli a típuseltéréseket, mint a C nyelv Lehetséges
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
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
Felhasználó által definiált adattípus
Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési
Fejlett programozási nyelvek C++ Sablonok és adatfolyamok
Fejlett programozási nyelvek C++ Sablonok és adatfolyamok 11. előadás Antal Margit 2009 slide 1 Témakörök Sablonok Függvénysablon Osztálysablon Sablon metaprogramozás Adatfolyamok Operátorok és manipulátorok
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
500. DD Megoldó Alfréd DD 500.
Programozás alapjai 2. (inf.) zárthelyi 2009.05.21. gyakorlat: / Érdemjegy: QBX734 () IB319/32. Hftest: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
Objektum elvű alkalmazások fejlesztése. Verem típus osztály-sablonja
Objektum elvű alkalmazások fejlesztése Verem típus osztály-sablonja Készítette: Gregorics Tibor Készítsünk olyan újra-felhasználható kódot, amellyel vermeket lehet létrehozni és használni. Egy verem-objektum
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ generikus szerkezetek, template 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.29. -1- Hol tartunk?
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
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-
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();
C++ Gyakorlat jegyzet 8. óra
C++ Gyakorlat jegyzet 8. óra A jegyzetet Umann Kristóf készítette Horváth Gábor gyakorlata alapján. (2018. április 30.) 1. Template 1.1. Függvény template-ek Térjünk vissza a régebben megírt swap függvényünkhöz.
1) Hány byte-on tárol a C++ egy karaktert (char)? implementáció-függő ( viszont lásd 79. megjegyzés ) 1 8 4
1) Hány byte-on tárol a C++ egy karaktert (char)? implementáció-függő ( viszont lásd 79. megjegyzés ) 1 8 4 2) Hány byte-on tárol a C++ egy float-ot? implementáció-függő 6 4 8 3) Hány byte-on tárol a C++
Kivételkezelés a C++ nyelvben Bevezetés
Kivételkezelés a C++ nyelvben Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Kivételkezelés a C++ nyelvben CPP9 / 1 Hagyományos hibakezelés Függvény visszatérési értéke (paramétere) hátrányai:
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.
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
Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:
Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból
Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
Generikus Típusok, Kollekciók
Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections
A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása
A verem (stack) A verem egy olyan struktúra, aminek a tetejére betehetünk egy új (vagy sorban több) elemet a tetejéről kivehetünk egy (vagy sorban több) elemet A verem felhasználása Függvény visszatérési
Programozási nyelvek Java
Programozási nyelvek Java 11.gyakorlat Operációsrendszertől függő tulajdonságok PATH elválasztó Unix ":" Windows ";" final String PATH_SEPARATOR = File.pathSeparator; Ugyanaz, csak karakterkent final char
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,
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
Programozás alapjai 2. (2. ea) C++
Programozás alapjai 2. (2. ea) C++ névterek, memóriakezelés 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.12. - 1 - Hol
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,
.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,
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
Programozás alapjai II. (4. ea) C++
Programozás alapjai II. (4. ea) C++ konstruktor és értékadás, dinamikus szerkezetek 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.
Tervminták II. (Híd, Bejáró, Gyártófüggvény) Halmaz és bejárása Osztály-sablonok
Tervminták II. (Híd, Bejáró, Gyártófüggvény) Halmaz és bejárása Osztály-sablonok 1.Feladat Készítsünk olyan kódot, amely segítségével természetes számokat tároló halmazok hozhatók létre. o Egy halmaz-objektum
Programozás alapjai II. (4. ea) C++
Programozás alapjai II. (4. ea) C++ konstruktor és értékadás, dinamikus szerkezetek 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.
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!
A C programozási nyelv III. Pointerek és tömbök.
A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,
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
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ó
STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók
STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)
500.AJ Megoldó Magyar Magdolna 500.J
Programozás alapjai 2. (inf.) 2. pzh 2017.05.09. gy./l. hiány: / ABCDEF IB.028/1. Z: / / Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de csak a feladatlapra írt
Stack Vezérlés szerkezet Adat 2.
Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás 2013. november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc
0. Megoldó Manó 0. Programozás alapjai 2. (inf.) pót zárthelyi gyak. hiányzás: 2 n/kzhp: n/11,5. ABCDEF IB.028/2.
Programozás alapjai 2. (inf.) pót zárthelyi 2014.05.22. gyak. hiányzás: 2 n/kzhp: n/11,5 ABCDEF IB.028/2. Hftest: 4 (2,4p) Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot,
A C programozási nyelv III. Pointerek és tömbök.
A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,
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]()
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
A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok
A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)
Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 2. előadás Adattípusok megvalósítása egységbe zárással 2014.02.17. Giachetta Roberto groberto@inf.elte.hu
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
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.
Programozás. C++ típusok, operátorok. Fodor Attila
Programozás C++ típusok, operátorok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. március 4. Deklaráció és definíció C++
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
Mutatók és mutató-aritmetika C-ben március 19.
Mutatók és mutató-aritmetika C-ben 2018 március 19 Memória a Neumann-architektúrában Neumann-architektúra: a memória egységes a címzéshez a természetes számokat használjuk Ugyanabban a memóriában van:
Programozás alapjai II. (8. ea) C++ bejárók és egy tervezési példa
Programozás alapjai II. (8. ea) C++ bejárók és egy tervezési példa 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. 2018.03.27. -
List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error
Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,
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,
1000.AA Megoldo Alfréd 1000.A
Programozás alapjai 2. (inf.) 2. PZH 2018.05.22. hiányzás:0+3 L4-R4P ZH: 27,5+26 ABCDEF IB.028/100. Sum:0 e:19 Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de
Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
feladat pont min elért
NEPTUN kód: NÉV: Aláírás: Programozás 2. NZH, 2019. május 14. 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
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.
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.
JAVA PROGRAMOZÁS 2.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,
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;
Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 8. előadás Strukturált programozás: dinamikus memóriakezelés Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. április 12. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -
Alkalmazott modul: Programozás 10. fejezet. Strukturált programozás: dinamikus memóriakezelés. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 10. fejezet Strukturált programozás: dinamikus memóriakezelés Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2015.
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
Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
é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
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
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
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 15. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 15. Leghosszabb 3D vektorok kikeresése 1 #i n c l u d e 2 #i n c l u d e 3 #d e f i n e MAX 1000
Szövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string