A C++ PROGRAMOZÁSI NYELV ISMERETÉNEK SZÁMONKÉRÉSE

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

Download "A C++ PROGRAMOZÁSI NYELV ISMERETÉNEK SZÁMONKÉRÉSE"

Átírás

1 A C++ PROGRAMOZÁSI NYELV ISMERETÉNEK SZÁMONKÉRÉSE GAUGING THE KNOWLEDGE OF THE C++ PROGRAMING LANGUAGE Pataki Norbert, Porkoláb Zoltán, Szűgyi Zalán Eötvös Loránd Tudományegyetem Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék Összefoglaló A C++ egy multiparadigmás programozási nyelv: támogatja az objektum-orientált, generikus, strukturális megközelítést. Rengeteg kihívást jelent mind a programozó hallgatóknak, mind az oktatóknak oktatástechnikai szempontokból ez a tulajdonsága. Külön kihívást jelent megfelelő számonkéréseket kitalálni. Nehéz elválasztani a feladatok kapcsán az algoritmikus gondolkodást és a nyelvi ismereteket. Léteznek alapvető nyelvi fogalmak, melyeket a programozó hallgatónak tudniuk kell a C++ programozási nyelvből (pl. paraméterátadás, stb.). Fontos, hogy a feladat szintén multiparadigmás legyen, azaz azaz ne legyen elég egyetlen paradigma ismerete. A különböző nyelvi konstrukciókat súlyozni kell a bonyolultságuk alapján. Jelen előadásban az alábbi kérdésekre adunk választ az ELTE C++ oktatása alapján: hogyan kérhetjük számon egyszerre az objektum-orientált, a generikus, a procedurális paradigmákat úgy, hogy közben a nyelvi konstrukciókra helyezzük a hangsúlyt az algoritmikus gondolkodás helyett. Hogyan fejezhetjük ki az ötfokozatú értékelést a C++ programozási nyelv tükrében? Milyen típusú feladatok lehetnek érdekesek a C++ szabványos sablon könyvtára (STL Standard Template Library) mellett? Mely nyelvi konstrukciók könnyebbek és nehezebbek a C++-ban? Példát mutatunk olyan korábbi zárthelyi példára, melyeket ezeken az elveken dolgoztunk ki. Kulcsszavak C++, vizsga, osztályozás Abstract C++ is a multiparadigm programming language that supports structural, object-oriented and generic approach. This features makes learn and teach C++ much more harder. However, it is difficult to figure out exercises for the termal examinations since not easy to separate the algorithmic cogitation from the knowledge of the programming language. There are some basic elements that programmer students have to know (e.g. parameter passing). This results in that we have to distinguish the different linguistic constructs on the basis of its complexity and importance. The exercise should be multiparadigm too. Many questions are arisen in connection with the exercises of termal examinations. How can we gauge more paradigms at the same time? How can we gauage students C++ knowledge when we do not lay stress on the algorithmic cogitation? What kind of exercises may be interesting by the Standard Template Library? Which C++ constructs are considered to be more difficult and which ones considered to be easier? What are the most important ones? In this paper we give answers to the previous questions, we describe our methodology to assessment of students C++ knowledge in a semiautomatic grading way. We also present exercise examples that worked out according to our methodology. Keywords C++, examination, grading 1

2 1. Bevezetés A szoftvertechnológiában egy paradigma jelenti az irányvonalat, amely mentén az absztrakciókat megalkotjuk. Egy paradigma egy alapelv, amely meghatározza, hogy egy problémát hogyan szedhetünk kezelhetőbb részekre. A paradigma irányít minket, hogy azonosítsuk azokat a pontokat, amely mentén a problémát felbonthatjuk. A paradigmák szabályokat határoznak meg, de eszközöket is adnak a kezünkbe a fejlesztéshez. A C++ programozási nyelvet sokszor objektum-orientált nyelvként kezelik, pedig valójában egy igazi multipardigmás nyelv. A procedurális programozási paradigma a C örökségből származik jobb paraméterátadási stratégiákkal és a túlterhelés lehetőségével. Osztályokat kifinomult módon hozhatunk létre, a C++ például az öröklődés három különböző árnyalatát képes megkülönböztetni. A C++ támogatja sablonok írását is, mellyel egészen egyedülálló módon jelent meg a nyelvben a generikus és a generatív programozási paradigma. A C++ Standard Template Library (STL) volt a legelső könyvtár, amelyet a generikus paradigma alapján készítettek, de használata gyakran a funkcionális paradigmára emlékeztet. A C++-t nem könnyű tanulni és tanítani sem. A C alapokat muszáj megismerniük a hallgatóknak, mert a hiánya nagyon veszélyes lehet. Egyszerre kell megismerkedni több paradigmával és a szabványos könyvtárral. A hallgatók tudását felmérni sem egyszerűbb, mert egyszerre több aspektusból kell vizsgálni. Sok alapvető konstrukció található a nyelvben. A hallgatóknak ismerniük kell ezeket a fogalmakat: mi a függvény, az osztály, a sablon. A hallgatóknak ezeket a konstrukciókat kifinomultan kell használnia. Nagyon fontos, hogy jól kezeljék a másolásokat, a paraméterátadásokat, konstruktorokat, konstansokat, stb. Egy programozási feladat kapcsán általában nehéz szétválasztani az algoritmikus gondolkodást és a nyelvi eszközök használatát. Fontos szempont, hogy a C++ tudás osztályozása ne függjön az algoritmikus képességektől, ezért a feladatokat úgy érdemes kidolgozni, hogy a megoldása csak minimális szinten függjön az algoritmikus képességektől. A C++ programozási nyelvi kurzusok során fontos, hogy a hallgatók megismerjék a szabványos könyvtárat is. A hallgatók a vizsgákon is használhatják a szabványos könyvtárat. Emiatt számos feladatot nem lehet feladni a specifikáció lényeges megváltoztatása nélkül, ilyenek például a listák, vektorok, map-ek. Ezek ebben a formában túl egyszerűek lennének. A szokásos ötfokozatú értékelést használjuk az osztályozáshoz. A kétfokozatúak egyszerűbbek, de nem elég árnyaltak. A C++ nyelvi konstrukcióknak tükröződnie kell az ötfokozatú értékelésben. Ehhez súlyozni kell a nyelv különböző eszközeit a fontosságuk és a bonyolultságuk alapján. Az előadásban bemutatjuk a vizsgáztatási módszerünket, mellyel a hallgatók C++ tudását osztályozzuk. Korábbi példák alapján bemutatjuk a rendszer struktúráját. A cikket az alábbi módon tagoljuk: a következő fejezet ismerteti a vizsgák általános leírását. Azután egy példát elemzünk ki, majd kevésbé részletesen ismertetünk néhány további ötletet is. Végül összefoglaljuk az előadást. 2. A vizsgák általános leírása 2

3 A hallgatók gépteremben írják a vizsgát. Használhatnak könyveket, jegyzeteket, az internetet, de egyedül kell megoldaniuk a feladatot. A vizsgát körülbelül 3,5 órán keresztül írhatják. Általában a feladat egy sablon osztály implementációja számos tagfüggvénnyel. A hallgatók megkapják a kliens kódot, amely példányosítja a sablont. A kliens tesztesetek sorozataként leírja a sablon specifikációját. Az elégséges osztályzathoz a hallgatóknak minimális funkcionalitást kell implementálniuk. Jobb jegyekért egyre több műveletet kell megvalósítani. Kezdetben az összes funkcionális teszt ki van kommentezve. Amikor a hallgatók implementálják az összes műveletet egy adott jegyért, akkor visszateszik a kódba a kikommentezett tesztek megfelelő részét, hogy megnézzék, helyes-e az implementációjuk. Ezek funkcionális és szemantikus tesztek ugyan nem bizonyítják a kód helyességét, de jó visszajelzést ad a hallgatóknak. A program kiírja a képernyőre a hallgató jegyét, amennyiben lefordul a program. Amikor a hallgatók megkapják a programot, az elégtelent ír ki. A hallgatók nem ugorhatnak át jegyeket. A feladat általános célja egy olyan konténer sablon, ami hasonló az STL-ben lévőhöz. Az osztály reprezentációját a hallgatók maguknak választják meg. A hatékonyság nem elsődleges szempont, de nagyon rosszul megválasztott reprezentáció nem elfogadható. Általában a hallgatóknak írniuk kell egy osztály sablon, melynek megfelelő sablon paraméterei vannak, és egy triviális konstruktort. Támogatni kell adatok tárolását, és kinyerését akár konstans objektumokból is. A másolás műveletei is gyakran szükségesek az elégséges jegyhez. Közepes jegyért általában bővíteni kell az osztályt. A szokásos elvárás ilyenkor például az adat törlése, stb. Jó vagy jeles érdemjegyért gyakran kell iterator vagy const_iterator belső típust írni, amely megfelelően együttműködik az STL algoritmusaival. Jó jegyért const-on túlterhelt operátorok is alkalmas konstrukciók. Időnként polimorfizmus alkalmazása is itt jelenik meg. Jeles jegyért számos konstrukciót lehet számonkérni. Alkalmas lehet egy speciális sablon konstruktor tetszőleges iterátortípusokhoz vagy sablon másoló konstruktor. Néha olyan STLjellegű generikus algoritmusokat kérünk számon, amelyek nincsenek benne a szabványban (például copy_if). Jó elképzelés egy plusz sablon paraméter bevezetése, melynek van alapértelmezett értéke, de ezt a plusz információt a teljes osztály kihasználja. A kliens kód általános sémája a következőképpen néz ki: #include "work.h" #include <iostream> // szükséges osztályok és függvények int main() { int yourmark = 1; /* 2 Itt az osztály alapvető műveleteit használjuk: néhány teszteset Ha az implementáció megfelel a teszteseteknek akkor yourmark-ot növeljük /* 3 3

4 } Még több művelet: újabb tesztesetek Néhány sikeres teszteset után yourmark értéke 3 /* 4 Bonyolultabb részek következnek tesztesetekként Sikeres tesztek után yourmark-ot megnöveljük /* 5 Nehéz műveletek a következő blokkban: Ha az implementáció átmegy a teszten, akkor yourmark értéke 5 std::cout << "Your mark is " << yourmark << std::endl; return 0; 3. Egy részletes példa Most bemutatunk egy konkrét példát, melyben egy rendezett láncolt lista sablont kellett megvalósítani. Ez rendezetten tárolja az elemeket. A publikus interfésze egészen hasonló az STL list konténeréhez, viszont az nem rendezett. A kliens kód tartalmaz egy Compare-nek nevezett funktor osztályt a felhasználói rendezéshez. #include "sl.h" #include <deque> #include <iostream> #include <string> #include <numeric> #include <functional> #include <vector> struct Compare: std::binary_function<int, int, bool> { bool operator()(int a, int b) const { return a > b; } }; A hallgatóknak az sl.h-nak nevezett file-lal kell dolgozniuk. Tudniuk kell, hogy a sablonok nem alkotnak fordítási egységet. A következő résznek működnie kell, hogy sikeres legyen a vizsga. Ha ez a rész nem működik, akkor a vizsga sikertelen. /* 2 SortedList<int> li; SortedList<double> ls; ls.insert(5.6); ls.insert(3.2); li.insert(7); li.insert(2); li.insert(5); const SortedList<int> cli = li; if (3 == cli.size()) yourmark = cli.front(); 4

5 A default konstruktornak meghívhatónak kell lennie. Szükséges az elemek beszúrása és az, hogy az osztály valódi sablon legyen: az insert-nek olyan típusú paramétere legyen, amilyen elmeket a rendezett lista tárol. Másoló konstruktort szintén biztosítani kell. Ez nem probléma, ha valaki a szabványos listával valósítja meg ezt az osztályt. Még két metódust kell megvalósítani: a size a lista elemszámát kérdezi le, a front pedig a lista legelső elemét. Ennek a két függvénynek konstansokon is működniük kell, ezért ezeknek const tagfüggvényeknek kell lenniük a C++ konstans helyességének megfelelően. A legelső elem a legkisebb a listában ezért lesz a yourmark értéke 2. /* 3 li.insert(8); li.remove(5); if (7 == cli.back()) yourmark = cli.size(); Közepesért két új metódust kell megírni: a remove törli egy elem összes előfordulását a listából és a back visszaadja a lista utolsó elemét. Const-on túlterhelés nem alkalmazható ebben a feladatban, mert az megsérthetné a rendezettségi megszorítást. /* 4 const int N = std::accumulate(cli.begin(), cli.end(), 0); yourmark += (14 == N); Jó jegyért egy iterátor típust kell implementálni. Az std::accumulate STL algoritmust hívjuk a SortedList iterátorával. Emiatt az iterátornak helyesen kell működnie, mert az algoritmust nem lehet módosítani. Ha az std::accumulate 14-et ad vissza a változó 4 lesz. Nem egyszerű implementálni egy iterátor osztályt, mert sok operátort és typedef-et kell írni, de az std::list iterátorai használhatóak kézzel írt típusok helyett. /* 5 std::deque<int> d; d.push_back(2); d.push_back(1); d.push_back(3); const SortedList<int, Compare> lc1(d.begin(), d.end()); std::vector<int> v; v.push_back(3); v.push_back(7); const SortedList<int, Compare> lc2(v.begin(), v.end()); if (7 == lc2.front()) yourmark = lc1.front() + lc2.size(); Két speciális bővítés szükséges a jelesért. Tetszőleges rendezést lehessen megadni sablon paraméterként egy funktor típus képében. Itt egy új sablon paramétert kell bevezetni, aminek van alapértelmezett értéke is. Az std::less<t> az a szabványos funktor, amely definiálja a megszokott rendezést funktor formában. Ezt nem bonyolult megvalósítani, de megtalálható a szabványos könyvtárban is. Ezt kell megadni default paraméternek. A másik elvárás, hogy egy speciális konstruktor sablont kell még megírni tetszőleges iterátor típushoz. Ebben a példában ezt std::vector::iterator-ral és std::deque::iterator-ral használjuk ezt a konstruktort. Az összes szabványos konténer biztosít ilyen konstruktort. A túlterhelés nem megengedett ebben a helyzetben. 5

6 A tesztek a fenti kódrészletekben nem biztosítják az implementáció helyességét, de sok problémát lehet felderíteni ezúton. Ez a példa nem túl bonyolult algoritmikus szempontból, de egyre nehezebb C++-os konstrukciókat tartalmaz. 4. További példák A vizsgafeladatainkat az előző példában is látható vizsgarendszer alapján készítjük el. Egy osztály sablon implementációját várjuk el egyre nehezedő részfeladatok képében és számontartjuk a hallgató jegyét egy változóban. Ennek a változónak az értéke függ a feladat helyes megoldásától. Sok ötletet lehet találni az egyik legjobb STL-ről szóló könyvben (Meyers, 2001). Szokás, hogy a feladatok alapötlete az STL hiányosságain alapul. Pointerek konténereit nem támogatja a könyvtár és sok számos problémát vet fel (például memória-szivárgás, illetve másolással kapcsolatos gondok). Az STL egy másik hiányossága az, hogy a multimap konténer nem definiálja az azonos kulcshoz tartozó elemek relatív sorrendjét. Egy érdekes feladat lehet egy olyan multimap jellegű konténer, amely definiálja ezt a sorrendet is. A szabványos STL nem tartalmaz hasító konténereket. Hasítótáblák, hashmap-ek szintén ideális feladatoknak számíthatnak egy géptermi vizsgán. Gráfok sem találhatóak az STL-ben. A gráfokat számos különböző formátumban lehet számonkérni, pl. irányított, irányítatlan, vagy választható módon. Opcionálisan súlyozást lehet rendelni az élekhez, stb. 5. Összefoglalás A C++ egy olyan multiparadigmás programozási nyelv, melyet nehéz tanulni és nehéz tanítani. Függvények, osztályok és generatív konstrukciók ortogonálisan használhatóak. Vizsgafeladatokat sem könnyű kitalálni. Az ötfokozatú skálára bontjuk fel a C++ elemi konstrukcióit, és egy olyan feladatba ágyazzuk be, amely szintén multiparadigmás. A vizsgafeladatokban kihasználjuk az STL egyes hiányosságait, és egy félautomatikus osztályozást definiálunk a feladattal. Irodalomjegyzék [1] Austern, M. H. (1999) Generic Programming and the STL, Addison-Wesley. [2] Cardelli L., Wegnep P. (1985) On Understanding Types, Data Structures, and Polymorphism. ACM Computing Surveys, 17(4), [3] Cifuentes, C., Brannan, B. (1996) Teaching C/C++ to Computer Science Students with Pascal Programming Experience. The 1st Australasian conference on Computer science education, [4] Coplien, J. O.(1998) Multi-Paradigm Design for C++. Addison-Wesley. [5] Helmick, M. T.(2007) Interface-based Programming Assignments and Automatic Grading of Java Programs. 12th annual SIGCSE conference on Innovation and technology in computer science education,

7 [6] Hext, J. B., Winings, J. W.(1969) An automatic grading scheme for simple programming exercises. Commun. ACM, 12(5), [7] Hitz, M., Kögeler, S.(1997) Teaching C++ on the WWW. 2nd conference on Integrating technology into computer science education, [8] Horwitz, S. (1999) Addison-Wesleys Review for the Computer Science AP Exam in C++. Addison-Wesley. [9] Karlsson, B. (2005) Beyond the C++ Standard Library: An Introduction to Boost. Addison-Wesley Professional. [10] Meyers, S. (2001) Effective STL, 3rd Edition. [11] Placer, J. (1993) The Promise of Multiparadigm Languages as Pedagogical Tools. ACM conference on Computer Science [12] Porkoláb, Z., Zsók, V. (2006) Teaching Multiparadigm Programming Based on Object- Oriented Experiences. Tenth Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts (TLOOC). [13] Saikonnen, R., Malmi, L., Korhonen (2001) A. Fully Automatic Assessment of Programming Exercises, 6th annual conference on Innovation and technology in computer science education, [14] Stroustrup, B. (1999) Learning Standard C++ as a New Language, C/C++ Users Journal, [15] Stroustrup, B. (2000) The C++ Programming Language, Special Edition. Addison- Wesley. [16] Tremblay, G., Labonte, E. (2003) Semi-automatic marking of java programs using junit. International Conference on Education and Information Systems: Technologies and Applications (EISTA 03), [17] Westbrook, D. S. (1999) A Multiparadigm Language Approach to Teaching Principles of Programming Languages. 29th ASEE/IEEE Frontiers in Education Conference, 11b3-14. [18] Zave, P. (1989) A Compositional Approach to Multiparadigm Programming. IEEE Software VI(5),

C++ Standard Template Library (STL)

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

Részletesebben

GTL Graphical Template Library

GTL Graphical Template Library Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék GTL Graphical Template Library Vatai Emil V. éves Programtervező Matematikus hallgató Témavezető: Dr. Porkoláb

Részletesebben

Fejlett programozási nyelvek C++ Iterátorok

Fejlett programozási nyelvek C++ Iterátorok Fejlett programozási nyelvek C++ Iterátorok 10. előadás Antal Margit 2009 slide 1 Témakörök I. Bevezetés II. Iterátor definíció III. Iterátorok jellemzői IV. Iterátorkategóriák V. Iterátor adapterek slide

Részletesebben

C vagy C++? Programozási Nyelvek és Fordítóprogramok Tanszék. Pataki Norbert. Programozási Nyelvek I.

C vagy C++? Programozási Nyelvek és Fordítóprogramok Tanszék. Pataki Norbert. Programozási Nyelvek I. Programozási Nyelvek és Fordítóprogramok Tanszék Programozási Nyelvek I. Témák 1 Bevezetés 2 A C++ alapfilozófiája 3 Névterek/namespace-ek 4 Függvények 5 Referenciák C++-ban Motiváció A C és a C++ nyelv

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

Bevezetés a programozásba 2

Bevezetés a programozásba 2 Bevezetés a programozásba 2 7. Előadás: STL konténerek, sablonok http://digitus.itk.ppke.hu/~flugi/ Vector int int main() { vector v(10); int int sum=0; for for (int i=0;i

Részletesebben

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

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Generikus osztályok Gyűjtemények Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Generikus osztályok Javaban az UML paraméteres osztályainak a generikus (sablon) osztályok felelnek

Részletesebben

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk. Érdi Gerg EF II. 2/2. Feladat Készítsen egy zsák típust! lkalmazzon osztályt! zsákokat rendezett láncolt listával ábrázolja! Implementálja a szokásos m veleteket, egészítse ki az osztályt a kényelmes és

Részletesebben

Algoritmus vizualizáció a tanítási gyakorlatban. Törley Gábor

Algoritmus vizualizáció a tanítási gyakorlatban. Törley Gábor Algoritmus vizualizáció a tanítási gyakorlatban Törley Gábor pezsgo@inf.elte.hu Mi is ez? Algoritmus működésének illusztrálása, abból a célból, hogy jobban megértsék azt a tanulók Tapasztalat: nehéz tanulni

Részletesebben

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében Dicse Jenő üzletfejlesztési igazgató How to apply modern e-learning to improve the training of firefighters Jenő Dicse Director of

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

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

Generikus osztályok, gyűjtemények és algoritmusok

Generikus osztályok, gyűjtemények és algoritmusok Programozási, gyűjtemények és algoritmusok bejárása Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 bejárása 2 bejárása 2 Java-ban és UML-ben bejárása Az UML-beli paraméteres osztályok a Java

Részletesebben

Collections. Összetett adatstruktúrák

Collections. Összetett adatstruktúrák Collections Összetett adatstruktúrák Collections framework Előregyártott interface-ek és osztályok a leggyakoribb összetett adatszerkezetek megvalósítására Legtöbbször módosítás nélkül használhatók Időt,

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

Challenge Accepted:C++ Standard Template Library

Challenge Accepted:C++ Standard Template Library Challenge Accepted: C++ Standard Template Library ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék patakino@elte.hu Szakmai Esti Mesék C++ Standard Template Library Felépítése konténerek:

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Generatív programok helyessége

Generatív programok helyessége Generatív programok helyessége Doktori értekezés tézisei 2013 Pataki Norbert patakino@elte.hu Témavezető: Dr. Porkoláb Zoltán, egyetemi docens Eötvös Loránd Tudományegyetem, Informatikai Kar, 1117 Budapest,

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

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

Using the CW-Net in a user defined IP network

Using the CW-Net in a user defined IP network Using the CW-Net in a user defined IP network Data transmission and device control through IP platform CW-Net Basically, CableWorld's CW-Net operates in the 10.123.13.xxx IP address range. User Defined

Részletesebben

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN Almási Béla, almasi@math.klte.hu Sztrik János, jsztrik@math.klte.hu KLTE Matematikai és Informatikai Intézet Abstract This paper gives a short review on software

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

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș-Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika 1.3 Intézet Magyar Matematika és Informatika 1.4 Szakterület

Részletesebben

1.AA MEGOLDÓ BERCI AA 1.

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

Részletesebben

A C++ Standard Template Library rövid összefoglalás

A C++ Standard Template Library rövid összefoglalás A C++ Standard Template Library rövid összefoglalás 2016-17. 1 Miről is van szó Alább összefoglaljuk, amely ismeretét feltesszük a félév során. Mivel mint megszokott az egyes verziók több-kevesebb mértékben

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

1000.AA Megoldo Alfréd 1000.A

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

Részletesebben

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék Programozás 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 11. Tantárgy célja, szükséges ismeretek Tantárgy célja,

Részletesebben

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

Részletesebben

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.

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,

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

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

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

A PROBLÉMAMEGOLDÓ GONDOLKODÁS HELYE AZ ADATBÁZISKEZELÉS OKTATÁSÁBAN. Kupcsikné Fitus Ilona, Selmeci István SZÁMALK Zrt.

A PROBLÉMAMEGOLDÓ GONDOLKODÁS HELYE AZ ADATBÁZISKEZELÉS OKTATÁSÁBAN. Kupcsikné Fitus Ilona, Selmeci István SZÁMALK Zrt. A PROBLÉMAMEGOLDÓ GONDOLKODÁS HELYE AZ ADATBÁZISKEZELÉS OKTATÁSÁBAN THE POSITION OF PROBLEM-SOLVING THINKING IN THE TEACHING OF DATABASE MANAGEMENT Kupcsikné Fitus Ilona, Selmeci István SZÁMALK Zrt. Összefoglaló

Részletesebben

feladat pont min elért

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

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș-Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4

Részletesebben

1. Bevezetés A C++ nem objektumorientált újdonságai 3

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.

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

Alprogramok, paraméterátadás

Alprogramok, paraméterátadás ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi

Részletesebben

C++ Gyakorlat jegyzet 12. óra

C++ Gyakorlat jegyzet 12. óra C++ Gyakorlat jegyzet 12. óra A jegyzetet Umann Kristóf készítette Horváth Gábor gyakorlata alapján. (2018. április 30.) 1. Beugró kérdések A következő kérdések egy régebbi, kiszivárgott C++ beugróból

Részletesebben

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) {} };

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

Részletesebben

A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló

A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL TEACHING EXPERIENCES OF THE IT ENGINEERING COURSE OF UNIVERSITY OF DEBRECEN Kuki Attila Debreceni Egyetem, Informatikai Kar Összefoglaló A Debreceni

Részletesebben

Felhasználó által definiált adattípus

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

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

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

A tanulásban akadályozott gyermekek idegen nyelvtanulásának aktuális kérdései Magyarországon 1

A tanulásban akadályozott gyermekek idegen nyelvtanulásának aktuális kérdései Magyarországon 1 Meggyesné Hosszu Tímea SZTE JGYPK Gyógypedagógus-képző Intézet Szeged meggyestimea@gmail.com Lesznyák Márta SZTE BTK Angoltanár-képző és Alkalmazott Nyelvészeti Tanszék Szeged lesznyak@t-online.hu A tanulásban

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

C++ Gyakorlat jegyzet 8. óra

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.

Részletesebben

500.AA Megoldo Arisztid 500.A

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

Részletesebben

S0-02 Típusmodellek (Programozás elmélet)

S0-02 Típusmodellek (Programozás elmélet) S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.

Részletesebben

C++ Gyakorlat jegyzet 7. óra

C++ Gyakorlat jegyzet 7. óra C++ Gyakorlat jegyzet 7. óra A jegyzetet Umann Kristóf készítette Horváth Gábor gyakorlata alapján. (2018. április 30.) 0.1. Header fájlra és fordításra egységre szétbontás Ha egy darab header fájlban

Részletesebben

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft.

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft. Komponensek együttműködése web-alkalmazás környezetben Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT Komponensek a gyakorlatban A szoftverkomponenseket fejlesztő csoportoknak szüksége van olyan

Részletesebben

500.AA Megoldó Kulcsár 500.A

500.AA Megoldó Kulcsár 500.A Programozás alapjai 2. (inf.) 2. ZH 2019.05.14. lab. hiányzás: + / HFt: ABC123 IL.305./1. p: e: Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de csak a feladatlapra

Részletesebben

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

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,

Részletesebben

List of Publications (Pánovics János)

List of Publications (Pánovics János) List of Publications (Pánovics János) Book 1. Juhász István, Kósa Márk, Pánovics János: C példatár, Panem, Budapest, 2005. Peer-Reviewed Papers 1. Kádek Tamás, Pánovics János: Some Improvements of the

Részletesebben

Objektumelvű programozás

Objektumelvű programozás Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé

Részletesebben

Tartalom. Bevezetés. Referenciák. Objektum-orientált programozás. Sablonok. Standard Template Library. Template Metaprogramozás. C++0x.

Tartalom. Bevezetés. Referenciák. Objektum-orientált programozás. Sablonok. Standard Template Library. Template Metaprogramozás. C++0x. C++ Pataki Norbert Eötvös Loránd Tudományegyetem, Programozási Nyelvek és Fordítóprogramok Tanszék, Budapest patakino@elte.hu ELTE Nyári egyetem 2011 Tartalom Bevezetés Referenciák Objektum-orientált programozás

Részletesebben

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók

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)

Részletesebben

Professional competence, autonomy and their effects

Professional competence, autonomy and their effects ENIRDELM 2014, Vantaa Professional competence, autonomy and their effects Mária Szabó szabo.maria@ofi.hu www.of.hu The aim and the planned activities at this workshop Aim: To take a European survey on

Részletesebben

A TÉRINFORMATIKA OKTATÁSA ÉS ALKALMAZÁSI LEHETÕSÉGEI

A TÉRINFORMATIKA OKTATÁSA ÉS ALKALMAZÁSI LEHETÕSÉGEI A TÉRINFORMATIKA OKTATÁSA ÉS ALKALMAZÁSI LEHETÕSÉGEI Katona Endre, katona@inf.u-szeged.hu JATE, Alkalmazott Informatikai Tanszék Abstract Geographer students learn how to apply GIS, but for programmer

Részletesebben

503.AA Megoldo Arisztid 503.A

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!

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

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

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Informatika a felsőoktatásban 2008 Debrecen, 2008. augusztus 27-29. JAVA PROGRAMOZÁSI NYELV OKTATÁSA C# ALAPOKON

Informatika a felsőoktatásban 2008 Debrecen, 2008. augusztus 27-29. JAVA PROGRAMOZÁSI NYELV OKTATÁSA C# ALAPOKON JAVA PROGRAMOZÁSI NYELV OKTATÁSA C# ALAPOKON TEACHING OF JAVA PROGRAMMING LANGUAGE ON BASIC LEVEL Szénási Sándor Budapesti Műszaki Főiskola, Neumann János Informatikai kar Összefoglaló Az informatika karokon

Részletesebben

Programozás módszertan

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

Részletesebben

Komponens alapú programozás Bevezetés

Komponens alapú programozás Bevezetés Komponens alapú programozás Bevezetés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network Computing

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

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

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

ANGOL NYELV KÖZÉPSZINT SZÓBELI VIZSGA I. VIZSGÁZTATÓI PÉLDÁNY

ANGOL NYELV KÖZÉPSZINT SZÓBELI VIZSGA I. VIZSGÁZTATÓI PÉLDÁNY ANGOL NYELV KÖZÉPSZINT SZÓBELI VIZSGA I. VIZSGÁZTATÓI PÉLDÁNY A feladatsor három részből áll 1. A vizsgáztató társalgást kezdeményez a vizsgázóval. 2. A vizsgázó egy szituációs feladatban vesz részt a

Részletesebben

Fejlett programozási nyelvek C++

Fejlett programozási nyelvek C++ Fejlett programozási nyelvek C++ 2. előadás Antal Margit 2010 slide 1 Források [BSWEB] Bjarne Stroustrup Texas A&M University AT&T Labs Research http://www.research.att.com/~bs [BSPACT] Bjarne Stroustrup:

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

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II. Tervezési minták Irodalom Steven R. Schach: Object Oriented & Classical Software Engineering, McGRAW-HILL, 6th edition, 2005, chapter 8. E. Gamma, R. Helm, R. Johnson, J. Vlissides:Design patterns: Elements

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás: 2015. 02. 09. 1 A tárggyal a kapcsolatos bármilyen kérdéssel keressétek Micskei Zoltánt. 2 3 4 Kép forrása: http://www.bmeme.hu/post/132/az-ora-lenyegeben-elmarad A gyakorlatok nem vezetettek,

Részletesebben

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4

Részletesebben

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

Részletesebben

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel Timea Farkas Click here if your download doesn"t start

Részletesebben

ENGLISH 24 English is fun Letter #1 Letters In the age of e-mails and cell phones writing a letter might seem out of fashion. However, learners of a foreign language should know how to do it. Here you

Részletesebben

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Cloud computing. Cloud computing. Dr. Bakonyi Péter. Cloud computing Cloud computing Dr. Bakonyi Péter. 1/24/2011 1/24/2011 Cloud computing 2 Cloud definició A cloud vagy felhő egy platform vagy infrastruktúra Az alkalmazások és szolgáltatások végrehajtására

Részletesebben

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor. Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb

Részletesebben

Generikus Típusok, Kollekciók

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

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

feladat pont min elért

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

Részletesebben

C++ Gyakorlat jegyzet 9. óra

C++ Gyakorlat jegyzet 9. óra C++ Gyakorlat jegyzet 9. óra A jegyzetet Umann Kristóf készítette Horváth Gábor gyakorlata alapján. (2018. április 30.) 1. Funktorok Mielőtt belevetnénk magunkat az STL-ben lévő algoritmusokba és konténerekbe,

Részletesebben

HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE

HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE EVALUATION OF STUDENT QUESTIONNAIRE AND TEST Daragó László, Dinyáné Szabó Marianna, Sára Zoltán, Jávor András Semmelweis Egyetem, Egészségügyi Informatikai Fejlesztő

Részletesebben

3. Osztályok II. Programozás II

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

Részletesebben

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

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

Részletesebben

Longman Exams Dictionary egynyelvű angol szótár nyelvvizsgára készülőknek

Longman Exams Dictionary egynyelvű angol szótár nyelvvizsgára készülőknek Longman Exams Dictionary egynyelvű angol szótár nyelvvizsgára készülőknek Egynyelvű angol nagyszótár haladó nyelvtanulóknak és nyelvvizsgázóknak 212,000 szócikkel A szótárban minden definíció egyszerű

Részletesebben

Phenotype. Genotype. It is like any other experiment! What is a bioinformatics experiment? Remember the Goal. Infectious Disease Paradigm

Phenotype. Genotype. It is like any other experiment! What is a bioinformatics experiment? Remember the Goal. Infectious Disease Paradigm It is like any other experiment! What is a bioinformatics experiment? You need to know your data/input sources You need to understand your methods and their assumptions You need a plan to get from point

Részletesebben

Szövegek C++ -ban, a string osztály

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

Részletesebben

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism) Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

KÉPI INFORMÁCIÓK KEZELHETŐSÉGE. Forczek Erzsébet SZTE ÁOK Orvosi Informatikai Intézet. Összefoglaló

KÉPI INFORMÁCIÓK KEZELHETŐSÉGE. Forczek Erzsébet SZTE ÁOK Orvosi Informatikai Intézet. Összefoglaló KÉPI INFORMÁCIÓK KEZELHETŐSÉGE Forczek Erzsébet SZTE ÁOK Orvosi Informatikai Intézet Összefoglaló Tanórákon és az önálló tanulás részeként is, az informatika világában a rendelkezésünkre álló óriási mennyiségű

Részletesebben

Eladni könnyedén? Oracle Sales Cloud. Horváth Tünde Principal Sales Consultant 2014. március 23.

Eladni könnyedén? Oracle Sales Cloud. Horváth Tünde Principal Sales Consultant 2014. március 23. Eladni könnyedén? Oracle Sales Cloud Horváth Tünde Principal Sales Consultant 2014. március 23. Oracle Confidential Internal/Restricted/Highly Restricted Safe Harbor Statement The following is intended

Részletesebben