Programozási Nyelvek (C++) Összefoglaló

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

Download "Programozási Nyelvek (C++) Összefoglaló"

Átírás

1 Programozási Nyelvek (C++) Összefoglaló Somogyi Krisztián gondozásában tétel: Fordítás [fordítási egység; warning; error; g++ kapcsolók] A teljes programot általában lehetetlen egy fájlban tárolni, mert például a szabványos könyvtára és az operációs rendszer forrása nem szokott szerepelni a program forráskódjában. Fordítási egység az, amit a fordítóprogram önállóan le tud fordítani. Tehát a felhasználó a fordítóprogramnak egy fordítási egységet, egy forrásfájlt ad át. Először a fájl előfordítása történik, azaz végrehajtódik a makrófeldolgozás, és az #include utasítások beépítik a fájlállományokat; majd a fordítóprogram ténylegesen lefordítja és elkészíti a tárgykódot. A külön lefordított részeket a szerkesztőprogram, a linker kapcsolja össze. Törekedni kell minél kevesebbet hagyatkozni a preprocesszorra, mert a C++ hibaüzenetei jobbak. A warning olyan dolgokra figyelmeztet, melyek nem akadályozzák a lefordulást, de később gondot okozhatnak. Ha valami akadályozza a lefordulást, akkor az error szól. A mi fordítóprogramunk a g++, ez tehát egy C++ forrásfájlból futtatható állományt készít. Lássuk a g++ legfontosabb kapcsolóit: 2. tétel: Típusok -o <file> Ez lesz a lefordított fájl neve. -c Csak object file-t készít, nem linkel. -I <path> Beállítja az include könyvtárat. -l <path> Beállítja a library könyvtárat. -Wall -W Maximálisra állítja a warning szintet. -Werror Hibánkénti figyelmeztetések. -g Debug információkat is beletesz a bináris file-ba. -ansi Letiltja az ansi szabvánnyal ellentétes kiterjesztéseket. -pedantic Letilt minden nem szabványos kiterjesztést. -Oβ Optimizációs szintet állít: β {0, 1, 2, 3. [erősen típusos nyelv; a C++ alaptípusai és méretei; konvertálás; const] A memóriában létrehozott tárolókat névvel látjuk el, amely segítségével hivatkozhatunk rájuk. Ezeket a tárolókat változóknak nevezzük. A számítógéptudományban és a programozáselméletben az erősen típusos (strong typing) kifejezést olyan esetekben használják, ahol a programozási nyelv megkötést tesz arra vonatkozóan, hogy a különböző adattípusú értékek hogyan keverhetőek egymással. A C++ erősen típusos nyelv, ami két dolgot von maga után: 1. Minden egyes változónak meg kell adni a típusát deklaráláskor. 2. Pontosan meg van szabva, hogy a különböző típusok mennyire képesek egymással együttműködni. 1

2 C++-ban minden kifejezésnek és részkifejezésnek fordítási időben ismert a típusa. A típus meghatározza a vele elvégezhető műveleteket. (Lásd 6. tétel.) Megkülönböztetünk alap- és származtatott típusokat. Előbbiekhez a karakter, az előjeles és előjel nélküli egészek, valamint a lebegőpontos típusok tartoznak. Utóbbiakat az alaptípusok felhasználásával felépített tömb-, mutató-, stb. típusok tartalmazzák. A C++-ban leggyakrabban használt alaptípusok: Egész számok típusa: int, short int, long int Lebegőpontos számok típusa: float, double, long double Logikai típus: bool Karakter típus: char Karakterlánc típus: string Az alapvető adattípusok mérete fordító és platformfüggő, de a következők adottak: egység = char short int long egység bool long char wchar_t long float double long double N = signed N = unsigned N, ahol N integrális (int, char vagy enum). Konvertálás: Felülről lefelé haladva, az első olyan szabály alapján, aminek igaz a feltétele. Egyik operandus Másik operandus Konverzió long double akármi akármi long double double akármi akármi double float akármi akármi float unsigned long akármi akármi unsigned long long int unsigned int unsigned int long int unsigned int long int long int unsigned int long int unsigned int long int unsigned int long int akármi akármi long int unsigned akármi akármi unsigned akármi bármi akármi, bármi int Const Konstansoknak azokat a változókat nevezzük, amelyeknek pontosan egyszer, kötelezően a definícióban adunk értéket. Ezt a típusnév elé írt const típusminősítővel jelezzük. 3. tétel: Vezérlési szerkezetek [szekvencia; elágazás; switch; ciklusok] A szekvencia az egymás után végrehajtott utasításokat jelenti, s ezzel a legegyszerűbb vezérlési szerkezet. utasitas1; utasitas2; utasitas3; stb. 2

3 Azonban vannak speciális utasítások, melyeket önmagukban szemügyre véve: más és más vezérlési szerkezeteket valósítanak meg. Amikor a program a futásakor egy elágazáshoz ér, megvizsgál egy feltételt, és ennek függvényében folyik tovább a végrehajtás. A feltétel teljesülésére és nem teljesülésére is adhatunk külön-külön végrehajtást. if (feltetel) { szekvencia1; else { szekvencia2; Bonyolultabb, többszörös feltételt is vizsgálhatunk: if (feltetel1) { szekvencia1; else if (feltetel2) { szekvencia2; else { szekvencia3; A feltétel több szempontból való megvizsgálására a C++ a switch szerkezetet adja; de ez korlátozott, csak integrális típust lehet vizsgálni. switch(n) { case eset1: szekvencia1; case eset2: szekvencia2; case eset3: szekvencia3; stb. default: szekvencia //ha semelyik sem igaz, ez legyen Ciklust akkor használunk, ha ugyanazt a feladatot többször kell elvégezni egymás után. Három fajta ciklus létezik (melyek lényegében megegyeznek egymással): Elöltesztelő: while (feltetel) { szekvencia; //ciklusmag Hátultesztelő: do { szekvencia; //ciklusmag while (feltetel); Számlálós: for (inicializalas; teszteles; inkrementalas) { szekvencia; //ciklusmag A feltételes (tesztelős) ciklusokat olyankor használjuk, amikor nem tudjuk előre, hogy hányszor kell a ciklusnak lefutnia. Az elöltesztelő ciklus először megvizsgálja, hogy a feltétel fennáll-e. Ha igen, akkor lefuttatja a ciklusmagot, és újból kezdődik; ha nem, akkor a program a ciklus utáni ponton folytatódik, azaz a ciklusmag kimarad. Lehetséges tehát, hogy az elöltesztelő ciklus egyszer sem fog lefutni. 3

4 4. tétel: Függvények [függvények deklarációja; túlterhelés, elfedés; paraméterátadás; függvények definiálása] A függvény a program olyan névvel ellátott egysége, amely a program bármely pontjából meghívható. Általában olyan utasítássorozatokat tartalmaz, amelyekre gyakran van szükség. Egy függvényt először deklarálnunk kell. Ekkor tájékoztatjuk a fordítót a függvény nevéről, a visszatérési értékének típusáról ha nincs visszatérési értéke, akkor ez void), és ha van neki, akkor a paramétereinek számáról és azok típusairól. Egy függvény szignatúrája a nevéből, a paramétereinek számából, valamint azok típusaiból áll. Hogy a deklaráció más forrásfájlból is látható legyen, használjuk az extern előatagot! extern tipus-ve fvnev(tipus-p1, tipus-p2, stb.); Akkor beszélünk túlterhelésről, ha azonos látókörben több azonos nevű függvény van deklarálva, különböző szignatúrával. Elfedésről akkor beszélünk, ha külső látókörben több azonos nevű függvény van deklarálva, különböző szignatúrával. Túlterhelt függvény hívásakor a fordító kiválasztja a látható függvények közül a legjobban illeszkedőt, szignatúra alapján. A feloldási szabály meglehetősen bonyolult, így óvatosan kell túlterhelt nevet bevezetni. C++-ban kétféle paraméterátadás van: érték szerinti, melynél az átadott típusból másolat készül a memóriában, így az eredeti értéket nem módosítja a függvény; valamit cím szerinti, melynél paraméterként az átadott típus referenciája szerepel, így a függvény módosíthatja a paramétereket. Nagyobb objektumot ha érték szerint adunk át, akkor az több memóriát foglal, ezért ebben az esetben a cím szerinti átadás javasolt. A deklaráció után rátérhetünk a függvény definíciójára is, ahol megadjuk, hogy mit csináljon a függvény. Hogy a definíció más forrásfájlból is látható legyen, használjuk az extern előatagot! extern fvnev(p1, p2, stb.) { szekvencia; //függvény belseje A függvények belsejében deklarált változókat lokális változóknak hívjuk. Ez a gyakorlatban azt jelenti, hogy láthatóságuk és élettartamuk a függvényen belülre korlátozódik. Viszont, ha a függvény egy függvényen kívüli változóval dolgozik, akkor azt a változót globális változónak nevezzük. 5. tétel: I/O kezelés [cin; cout; cerr; clog] A konzol kezeléséhez a műveleteket külön fájlban, az iostream-ben találjuk, ezért ezt csatolnunk kell a programunkhoz: #include<iostream>. Az iostream a standard névtérbe (std) tartozik. std::cin: A szabványos bemenet, amely általában a billentyűzet. std::cout: A szabványos kimenet, amely általában a képernyő. std::cerr: A szabványos hibakimenet, amely általában a képernyő. std::clog: A std::cerr teljesen bufferált változata. int n; std::cout << "Kérem, írjon be egy természetes számot." << std::endl; std::cin >> n; std::cout << "Ennek a 13-mal való osztási maradéka: " << n%13 << "." << std::endl; 4

5 6. tétel: Beépített típusok operátorai [operátorok; operátorok összefoglalása] A legtöbb programozási nyelv tartalmaz operátorokat. Ezek speciális függvények, precedenciával és sokszor sajátos írásmóddal, az általános függvényforma nélkül. Az operátorokat csoportosíthatjuk létrehozásuk célja szerint, így vannak aritmetikai, összehasonlító, bitszintű és egyéb operátorok. A C++ átvette a C összes operátorát, valamint bevezetett újakat és néhánynak a jelentését is megváltoztatta. Az utolsó oldalon található az operátorok összefoglaló táblázata. Most alaptípusonként közöljük az azokon elvégezhető műveleteket: Egész számok típusán: +, -, *, /, %, ==,!=, <, <=, >, >= Lebegőpontos számok típusán: +, -, *, /, ==,!=, <, <=, >, >= Logikai típuson: &&,,!, ==,!= Karakter típuson: ==,!= 7. tétel: Standard könyvtár elemei [STL konténerek; I/O könyvtár (5. tétel)] Az std névtérben definiálták a standard könyvtár szolgáltatásait. Sokszor szabványos tárolóknak hívják az STL (Standard Template Library) konténereket. A tároló olyan objektum, ami más objektumokat tartalmaz. Kétféle tárolótípus van: 1. Szekvenciális tárolók: vector, deque, list. 2. Asszociatív tárolók: set, multiset, map, multimap. vector: Olyan, mint az egyszerű tömb a C++-ban, de a mérete dinamikusan nő. Gyorsan elérhető tetszőleges eleme, és gyorsan megy a végéhez egy új elem beszúrása, vagy egy onnan való elem törlése is. Viszont minden más helyre beszúrni, vagy törölni lassú. Példa: int-eket tartalmazó vector: vector<int> v; deque: Ez a kévégű sor. Gyorsan (bár egy kicsit lassabban, mint vector esetén) elérhető tetszőleges eleme, és az elejéhez meg a végéhez gyors egy új elem beszúrása, vagy egy onnan való elem törlése is. Viszont minden más helyre beszúrni, vagy törölni lassú. Példa: int-eket tartalmazó deque: deque<int> d; list: Ez a kétirányú láncolt lista. Gyorsan lehet tetszőleges helyre beszúrni, vagy tetszőleges helyről törölni. Az elején és a végén lévő elemek elérése is gyorsan megy, de minden más helyen lassú. Példa: int-eket tartalmazó list: list<int> l; Az előbbiekben a gyors azt jelentette, hogy konstans időben végrehajtható, s a lassú meg azt, hogy csak lineáris időben. set: Ez a matematikai halmaz. Példa: int-eket tartalmazó set: set<int> s; 5

6 multiset: A zsák olyan objektum, ami annyiban különbözik a halmaztól, hogy egy elem többször is szerepelhet benne. Minden elemnek megvan a multiplicitása, hogy tudjuk, hányszor szerepel. Példa: int-eket tartalmazó multiset: multiset<int> ms; map: Kulcs és érték párokat tárol. Kívülről úgy túnik, mint egy tömb, de indexei tetszőleges típusok lehetnek! Példa: Olyan map, amiben string a kulcs, az érték meg int. map<string, int> m; multimap: Ez egy olyan objektum, ami annyiban különbözik a map-tól, hogy egy elem többször is szerepelhet benne. Példa: Olyan multimap, amiben string a kulcs, az érték meg int. multimap<string, int> mm; 8. tétel: Osztályok [motiváció; adattagok; tagfüggvények; konstruktor; destruktor] Az objektum-orientált programozás alapja, hogy az összetartozó adatokat egy egységként kezeljük. A C++ nyelv osztályai azt a célt szolgálják, hogy a programozó a beépített adattípusokkal azonos védelmi szinten használható, új adattípusokat hozhasson létre. Ezenkívül az öröklődés és a sablonok segítségével úgy szervezhetjük az egymással kapcsolatban álló osztályokat, hogy hatékonyan használhassuk ki kapcsolataikat. Az osztály egy felhasználói típus. Az adattípus és a függvények közötti kapcsolatot úgy hozhatjuk létre, hogy a függvényeket tagfüggvényként adjuk meg. Az osztálydefiníción belül deklarált függvényt nevezzük tagfüggvénynek. Minden tagfüggvényt definiálni is kell valahol. Az osztályon belül definiált tagfüggvényt inline függvénynek nevezzük. Egy osztály bármely tagfüggvénye hozzáfér az adattagokhoz, bármilyen legyen is annak elérése. Egy osztály adattagjának háromféle elérhetősége lehet: public: Mindenki számára elérhető. private: Csak az osztályon belülről lehet elérni, illetve barát osztályok és függvények részére még elérhető. protected: A származtatott osztályok számára közvetlen elérhetőséget biztosít. A struktúra olyan osztály, melynek minden adattagja nyilvános. Bármely adattag lehet static tárolási osztályú. A statikus adattag az osztály valamennyi objektuma számára egy példányban létezik, azok osztottan használják. Most jöjjön egy osztály, mely az előzőekben bevezetett fogalmakat példázza. class Osztaly { private: static int adattag1; //Nyilvános és statikus egész típusú adattag. float adattag2; bool tagfv1(float); public: char adattag3; int tagfv2(int); //Nyilvános és nem statikus lebegőpontos számtípusú adattag. //Nyilvános tagfüggvény, melynek visszatérési értéke logikai //típusú, és az egy paramétere lebegőpontos számtípusú, melyet //érték szerint adunk át. //Nem nyilvános és nem statikus karakter típusú adattag. //Nem nyilvános tagfüggvény, melynek visszatérési értéke //és paramétere egész típusú. 6

7 Konstruktor Az objektumok kezdeti értékadása nincs lefektetve, és ez hibák forrása lehet. Erre jó megoldás egy függvény létrehozása, amelynek célja az objektumok előkészítése. Ennek a speciális függvénynek a neve konstruktor. Arról ismerjük meg, hogy ugyan az a neve, mint az osztálynak. A konstruktor szintén lehet public, private, vagy protected elérésű. A csak private elérésű konstruktorral rendelkező osztályt rejtett osztálynak nevezzük. Destruktor Az objektumok kezdőállapotát a konstruktorok állítják be, vagyis létrehozzák azt a környezetet, ahol a tagfüggvények működnek. Ez erőforrás-lefoglalással járhat, amit használat után fel kell szabadítani. Tehát némely osztálynak kell olyan függvény, ami biztosan meghívódik, amikor egy objektum megsemmisül; hasonlóan, ahogy a konstruktor is biztosan meghívódik, amikor az objektum létrejön. Ennek a speciális függvénynek a neve destruktor. Hasonlóan a konstruktorhoz a destruktornak sincs visszatérési értéke, azonban a destruktornak nem lehetnek paraméterei a konstruktorral ellentétben. A destruktort onnan ismerjük meg, hogy a neve, mint az osztálynak, plusz egy karakter. Végül jöjjön egy példa. Ebben egy komplex osztály komplex összeadással, és egy konkrét összeadás kiszámítása lesz bemutatva. #include<iostream> class Komplex { private: double re; double im; public: //konstruktor Komplex(double r=0, double i=0) { re=r; im=i; double real() { return re; double imaginary() { return im; //komplex összeadás cím szerinti paraméterátadással Komplex operator+ (Komplex& egyik, Komplex& masik) { return Komplex(egyik.real()+masik.real(), egyik.imaginary()+masik.imaginary()); //(3+4i)+(2-7i)=? int main() { Komplex a(3, 4); Komplex b(2, -7); Komplex c=a+b; std::cout << c.real() << "+" << c.imaginary() << "i" << std::endl; 7

8 Prec. Operátor Rövid leírás Kiért. iránya 1 a::b Hatókör-operátor nincs 2 (a) Csoportosítás Balról jobbra 2 a[] Tömb-elérés Balról jobbra 2 ptr->b() Mutatón keresztüli tag-elérés Balról jobbra 2 a.b() Objektumon keresztüli tag-elérés Balról jobbra 2 a++ Posztfix növelés Balról jobbra 2 a-- Posztfix csökkentés Balról jobbra 3!a Logikai tagadás Jobbról balra 3 a Bitenkénti negálás Jobbról balra 3 ++a Prefix növelés Jobbról balra 3 --a Prefix csökkentés Jobbról balra 3 -a Negatív előjel Jobbról balra 3 +a Pozitív előjel Jobbról balra 3 *ptr Deferálás Jobbról balra 3 &a Objektum címe Jobbról balra 3 (b)a Konverzió típusa Jobbról balra 3 sizeof(a) Méret Jobbról balra 4 a->*b() Tagkiválasztás mutatón Balról jobbra 4 a.*b() Tagkiválasztás objektumon Balról jobbra 5 a*b Szorzás Balról jobbra 5 a/b Osztás Balról jobbra 5 a%b Maradékos osztás Balról jobbra 6 a+b Összeadás Balról jobbra 6 a-b Kivonás Balról jobbra 7 a<<b Bitenkénti eltolás balra Balról jobbra 7 a>>b Bitenkénti eltolás jobbra Balról jobbra 8 a<b Kisebb Balról jobbra 8 a<=b Kisebb-egyenlő Balról jobbra 8 a>b Nagyobb Balról jobbra 8 a>=b Nagyobb-egyenlő Balról jobbra 9 a==b Egyenlő Balról jobbra 9 a!=b Nem egyenlő Balról jobbra 10 a&b Bitenkénti és Balról jobbra 11 a^b Bitenkénti kizáró vagy Balról jobbra 12 a b Bitenkénti megengedő vagy Balról jobbra 13 a&&b Logikai és Balról jobbra 14 a b Logikai vagy Balról jobbra 15 logkif?kif:kif if-then-else operátor Jobbról balra 16 a=b Értékadás Jobbról balra 16 a+=b Összeadás, majd értékadás Jobbról balra 16 a-=b Kivonás, majd értékadás Jobbról balra 16 a*=b Szorzás, majd értékadás Jobbról balra 16 a/=b Osztás, majd értékadás Jobbról balra 16 a%=b Maradékos osztás, majd értékadás Jobbról balra 16 a&=b Bitenkénti és, majd értékadás Jobbról balra 16 a^=b Bitenkénti kizáró vagy, majd értékadás Jobbról balra 16 a =b Bitenkénti megengedő vagy, majd értékadás Jobbról balra 16 a<<=b Eltolás balra, majd értékadás Jobbról balra 16 a>>=b Eltolás jobbra, majd értékadás Jobbról balra 17 a, b Szekvencia operátor Balról jobbra 8

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.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3 Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás

Részletesebben

Pénzügyi algoritmusok

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ó

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

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

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

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

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

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

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

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék CPP0 / 1 Története A C++ programozási nyelv a C programozási nyelv objektum orientált kiterjesztése. Az ANSI-C nyelvet

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

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

Programozás. C++ típusok, operátorok. Fodor Attila

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

Részletesebben

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

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

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

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

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

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

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

Bevezetés a programozásba. 8. Előadás: Függvények 2. Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout

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

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ási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

Java II. I A Java programozási nyelv alapelemei

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

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char

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

Apple Swift kurzus 3. gyakorlat

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

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

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.

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

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

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

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

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

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

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

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

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

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

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

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról

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

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

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

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ÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. március 31. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -

Részletesebben

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

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb

Részletesebben

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

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,

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

C++ programok fordítása

C++ programok fordítása C++, 1/ 33 C++ programok fordítása Pataki Norbert 2012. február 24. C++, 2/ 33 Információk Pataki Norbert, patakino@elte.hu http://patakino.web.elte.hu/levelezo Jegy: gyakorlat, Szűgyi Zalán C++, 3/ 33

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

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 - CPP. GYAKORLAT JEGYZET

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

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

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

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,

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

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

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

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

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:

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

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

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

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

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

Kivételek, kivételkezelés a C++ nyelvben

Kivételek, kivételkezelés a C++ nyelvben 2009. Kivételek, kivételkezelés a C++ nyelvben Haladó C++ programozás Kurucz Attila ELTE - IK 2009.06.09. Tartalomjegyzék Tartalomjegyzék... 2 Mi a kivételkezelés?... 3 Alapfogalmak... 3 Kivétel... 3 Try

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

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

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti

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

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >; Rövid elméleti összefoglaló 1. Gyakorlat A C++ nyelv hatékony, általános célú programozási nyelv, amely hagyományos fejlesztőeszközként és objektum-orientált programozási nyelvként egyaránt használható.

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Programozási nyelvek (ADA)

Programozási nyelvek (ADA) Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)

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

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés) Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban

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

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ás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r

Részletesebben

Programozás 1. Dr. Iványi Péter

Programozás 1. Dr. Iványi Péter Programozás 1. Dr. Iványi Péter 1 C nyelv B.W. Kernighan és D.M. Ritchie, 1978 The C Programming language 2 C nyelv Amerikai Szabványügy Hivatal (ANSI), 1983 X3J11 bizottság a C nyelv szabványosítására

Részletesebben

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés) Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban

Részletesebben

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

Részletesebben

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)

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

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

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

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

Részletesebben

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben