EAF I C++ nyelvi elemek felsorolása 1. Alapvet típusok

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

Download "EAF I C++ nyelvi elemek felsorolása 1. Alapvet típusok"

Átírás

1 EAF I C++ nyelvi elemek felsorolása 1 Alapvet típusok int egész ill természetes számok (83, -1320) m veletek: + - * / % ==!= < <= > >= megjegyzés: az osztás eredménye egész float valós számok ( ) m veletek: + - * / ==!= < <= > >= megjegyzés: az osztás eredménye valós bool logikai értékek (false, true) m veletek: &&! ==!= char karakterek ( a 3 \ ) m veletek: ==!= string karakterláncok ( valami ) m veletek: size(length) + [] c_str() substr() ==!= string str esetén (std névtér és #include <string>) str.size() az str hossza (karaktreinek száma) str[i] az str i-edik karaktere str + vége két karakterlánc összef zése str.c_str() str átalakítása C stílusú lánccá str.substr(i,j) str részének kivágása megjegyzés: Karakterlánc számmá konvertálása atoi(str.c_str()) Karakterlánc-konstans sortörése: Ez itt egy nagyon hosszú \ másik sorba is átnyúló szöveg

2 EAF I C++ nyelvi elemek felsorolása 2 Elemi programok Értékadás változó := kifejezés értékadást változó = kifejezés; alakban írjuk. Szimultán értékadások A szimultán értékadásokat közönséges értékadások szekvenciájaként (lásd szekvencia) lehet leírni. Ezeket a közönséges értékadásokat írjuk egy sorba! Értékadás értéke A C++ nyelv értékadásainak értéke is van, mégpedig az értékül adott kifejezés értéke. Más sóval egy értékadás egyszerre utasítás is, és kifejezés is. Ezért lehet például olyan értékadásokat is írni, mint változó1 = változó2 = kifejezés; amely mindkét változónak a kifejezés értékét adja. Olyan szimultán értékadások kódolásánál használjuk, ahol minden változó ugyanazt az értéket kapja meg. Gyakori hiba, hogy a programozó változó == kifejezés egyenl ség-vizsgálat helyett változó = kifejezés formát használ. Sajnos mivel az értékadásnak is van értéke, és egy tetsz leges érték könnyen konvertálódik logikai értékké ezt a fordító program nem jelzi hibaként, és az eredmény nem a várt egyenl ség-vizsgálat eredménye lesz, ráadásul a változó is elveszíti az értékét. Gondoljunk például arra, hogy el akarjuk dönteni, hogy egy i változó egyenl -e 1-gyel, de az i==1 kifejezés helyett rosszul az i = 1 értékadást használjuk. Ennek az értékadásnak az értéke 1, amit a C++ true logikai értéknek tekint. A vizsgált logikai kifejezés mindig igaz lesz, az i változó új értéket kap, és a fordító nem jelez hibát. Speciális értékadások ++i, i++ i = i+1 --i, i-- i = i-1 Vigyázat! Kifejezésként használva az i++ az i kezdeti értékét a ++i az i megnövelt érétkét képviseli. Program leállítása 1-es hibakóddal exit(1); Megjegyzések kódba illesztése Egy soros megjegyzés esetén Több soros megjegyzés esetén /* utasitás // megjegyzés megjegyzés */

3 EAF I C++ nyelvi elemek felsorolása 3 Programszerkezetek Szekvencia Az utasítások (utasításblokkok) egymás utáni elhelyezésével fejezhet utasításokat pontosvessz (;) zárja le, az utasításblokkokat kapcsos zárójel (). ki. Az Elágazás Közönséges elágazás if(feltétel) ág_1 else ág_2 Egyszer bb esetben if(feltétel) else ut_1; ut_2; A ki nem írt else ág üres utasítású ágat jelent: if(feltétel)ut_1; Sok ágú elágazás A sokágú elágazást egymásba ágyazott if-else elágazásokkal kódolhatjuk. Tudni kell azonban, hogy így az absztrakt elágazással ellentétben, amelyik nem-determinisztikus és ha egyik feltétel sem teljesül, akkor abortál ez egy determinisztikus és ha egyik feltétel sem teljesül, akkor üres programként m köd kódot kapunk. Ez azonban nem baj, mert ha az absztrakt elágazás helyes volt, akkor annak valamelyik feltétele biztos teljesül, és bármelyik determinisztikus változat is helyes. Megjegyezzük még, hogy amennyiben az elágazás feltételei teljes és páronként diszjunkt rendszert alkotnak, akkor a kód teljesen azonos az absztrakt változattal. A kódban használhatunk sok ág után egy külön else ágat is, amely az absztrakt változathoz képest egy extra lehet séget biztosít. if(feltétel_1) ág_1 else if(feltétel_2) ág_2 else if(feltétel_3) else ág_n+1

4 EAF I C++ nyelvi elemek felsorolása 4 Speciális sokágú elágazás Ciklus switch (kifejezés) case konstans1 : utasítássorozat1 ; break; case konstans2 : utasítássorozat2 ; break; case konstans3 : case konstans4 : utasítássorozat34 ; break; default : utasítássorozat5 ; while(feltétel) mag Ciklust tartalmazó nevezetes összetett utasítások A for utasítás a program_1; while(feltétel) mag; program_2; kód egyszer bb írására használható. Formája: for(program_1;feltétel;program_2) mag Általában az úgynevezett számlálós ciklusokhoz, illetve az iteratív szerkezet adatok feldolgozásához használjuk. for(i=0;i<n;i++) mag az i az úgynevezett ciklus számláló. Ha a ciklusmag egyetlen utasításból áll, akkor használható az alábbi forma: for(i=0;i<n;i++) utasítás; A do-while utasítás a mag; while ( feltétel ) mag kód egyszer bb írására használható. Formája: do mag while ( feltétel ) Egyrészt adatbevitel ellen rzésénél használjuk do adatbevitel if(kritérium) üzenet while ( kritérium ) Másrészt amikor a programot alkalmassá tesszük arra, hogy tetsz leges sokszor futtathassuk: do program cout << Folytatja? (I/N) ; char ch; cin >> ch; while (ch!= N && ch!= n );

5 EAF I C++ nyelvi elemek felsorolása 5 Szabványos be- és kimenet #include <iostream> cin >> változó1 >> változó2; cout << kifejezés1 << kifejezés2; cout << endl; Karakterláncok beolvasása Az üres karakterláncot nem tudunk a >> operátorral beolvasni. Ilyenkor a beolvasásnak másik formáját kell használni: getline(cin,str); Ügyeljünk azonban arra, hogy ha vegyesen használjuk a két olvasási módot, akkor a getline alkalmazása el tt ürítsük ki a billenty zet puffert, mert abban benn maradhatnak a korábbi beolvasásból maradt elválasztó karakterek, els sorban a sorvége karakter. A kiürítés történhet egy külön getline(cin,str) utasítással. Szerkesztett formátumú beolvasás, kiírás A formátumjelz flageket a cin.setf(), cout.setf(), cin.unsetf(), cout.sunetf() függvények paramétereként kell felsorolni. A setf() beállítja, az unsetf() kikapcsolja ket, a kett között érvényben vannak. Némelyikük alapértelmezett módon be van kapcsolva. A flageket a jellel elválasztva. Minden flag elé az ios:: min sítést kell írni. A manipulátorok csak az adott adat mozgatásra vonatkoznak. ket a << operátorral kell a standard kimenetre küldeni. Manipulátorok setw(int w), width(int w) setprecision(int p), precision(int p) setfill(char c) endl Formátumjelz flagek scientific, fixed, right, left, dec, hex, oct, showpoint, showpos skipws : mez szélesség számábrázolás pontossága.. kitölt karakter sorvége lebeg pontos. fixpontos. tömörítés. számrendszer tizedespont, el jel látszódjon-e elválasztó jelek átlépése..

6 EAF I C++ nyelvi elemek felsorolása 6 Struktúra A rekord típusnak megfeleltetett szerkezet: struct Nev tipus1 mezo1; tipus2 mezo2; ; Nev d; A d.mezo1 kifejezés (a mezo1 a szelektor függvény) állhat értékadás jobb- illetve baloldalán. Az egyik esetben felhasználjuk d.mezo1 kifejezés által képviselt értéket, a másik esetben megváltoztathatjuk azt. Statikus és dinamikusan lefoglalt tömbök Statikus egydimenziós tömb (vektor): int t[100]; int n; cin >> n; for(int i=0;i<n;i++) cin >> t[i]; // statikusan lefoglalt tömb // tényleges hosszúság // n értékének megadása // t feltöltése Dinamikusan lefoglalt egydimenziós tömb (vektor): int* t; int n; cin >> n; t = new int[n]; for(int i=0;i<n;i++) cin >> t[i]; delete[] t; // véges hosszú tömb neve // tényleges hosszúság // n értékének megadása // tomb lefoglalása futás közben // t feltöltése // t felszabadítása Statikus kétdimenziós tömb (mátrix): Elem t[10][20]; //statikusan lefoglalt mátrix int n,m; // tényleges méret cin >> n >> m; // n,m értékének megadása for (int i=0;i<n;i++) // t feltöltése for (int j=0;j<m;j++) cin>>t[i][j];

7 EAF I C++ nyelvi elemek felsorolása 7 Dinamikusan lefoglalt kétdimenziós tömb (mátrix): Elem** t; // véges méret mátrix int n,m; // tényleges méret cin >> n >> m; // n,m értékének megadása t=new Elem*[n]; for (int i=0;i<n;i++) // t feltöltése t[i]=new Elem[m]; for (int j=0;j<m;j++) cin>>t[i][j]; for (int i=0;i<n;i++) delete[] t[i]; delete[] t; // t felszabadítása Fügvények és paraméterátadás A függvény egy olyan programkód-részlet, amelyet akkor hajthatunk végre, ha a programunk egy adott pontján (amely a függvény láthatósági körén belül van) a függvény nevére történ hivatkozással meghívjuk azt. Ilyenkor a program végrehajtása addig felfüggeszt dik, amíg a függvényhez tartozó kód le nem fut. Deklaráció Egy függvényt az alábbi formájú kódrészlet deklarál. tipus fuggvenynev(tipus1 p1, tipus2 p2, ); Egy függvényt a típusa, a neve és a paraméterváltozóinak típusai együttesen határozzák meg, ezért lehet például több eltér funkciójú, de ugyanolyan nev függvényt definiálni. A függvény típusa és a paraméterváltozóinak típusai írják le, hogy a típus hogyan kommunikál az t hívó programmal, azaz hogyan kap attól kezd értéket illetve hogyan tud visszaadni eredményt. (A teljes igazsághoz hozzátartozik, hogy a különböz programrészek úgynevezett globális változókon keresztül is kommunikálhatnak, de ennek a lehet ségnek a kihasználása sok veszélyt rejt magában, ezért mi nem használjuk.) Egy paraméterváltozó akkor kimen jelleg (a benne keletkezett érték a hívó programban lekérdezhet ), ha a típusának neve el tt nem szerepel a const szó, és a típusa vagy egy típusszerkezetre utal (tömb, struktúra), vagy a típusnév után egy & jel áll (hivatkozás szerinti paraméter). Az ilyen paraméterváltozók képesek adat bevitelre is, és visszaadásra is. Minden más esetben a paraméterváltozó kizárólag bemen jelleg (a hívó programban adható meg számára kezd érték). Tehát akkor is, ha egy típusnév áll a változó el tt & jel nélkül, és akkor is, ha a const szó megel zi a típusnevet (amit ilyenkor akár még & jel is követhet). Az olyan bemen paraméter esetén, amelynek lehetséges értékei nagy memória helyet (?) foglalnak, ajánlott a const szó és az & jel együttes használata (pl. string). Az eredmény visszaadására van a fentieken kívül még egy lehet ség. Maga a függvény képes egy kiszámolt értéket (kimen adatot) úgynevezett visszatérési értékként el állítani ennek az értéknek a típusát adja meg a függvény deklarációjában a függvény neve elé írt típus. Erre az értékre a függvény meghívásakor a függvény nevének megfelel formába (lásd függvény hívása) felírt kifejezésével tudunk hivatkozni. Speciális esetben lehet egy függvény típusa void, ami azt jelöli, hogy a függvénynek nincs visszatér értéke, kizárólag a paraméterein keresztül tudunk kommunikálni vele.

8 EAF I C++ nyelvi elemek felsorolása 8 Tömbök, mint függvény paraméterek void fv(elem t[][20], int &n, int &m) t[i][j] void fv(elem** &t, int &n, int &m) t[i][j] Definíció Egy függvény definíciójának formája az alábbi: tipus fuggvenynev(tipus1 p1, tipus2 p2, ) A kapcsos zárójelek között kell elhelyezni azt a kódot (függvény törzs), amelynek végrehajtását képviseli majd a függvény. Ez a kód ugyanúgy használhatja a paraméterváltozókat, mint a kódban definiált egyéb változókat azzal a megkötéssel, hogy számolhat a paraméterváltozók kívülr l megadott kezd értékével, továbbá ha egy paraméterváltozó definíciójában szerepelt a const szó, akkor nem állhat olyan kifejezésben, ahol új értéket kaphat. (Ezt a fordító egyébként jelzi.) Ha a függvény típusa nem void, azaz van visszatérési értéke, akkor a függvény kódjában kiszámolt visszatérési értéket egy return utasítás után (akár kifejezés formájában) kell leírni. Amikor a vezérlés a return utasításhoz ér, akkor a függvény kódjának végrehajtása megszakad, és a vezérlés visszatér return utasítás utáni értékkel a függvény hívásának helyére. Ügyeljünk arra, hogy a függvény végrehajtása mindig ilyen return utasítással végz djön. Abban az esetben, ha a függvény típusa void, üres return utasítással (return;) jelezzük a végrehajtás végét. Hívás Egy függvény hívása a nevének () zárójelekkel ellátott fuggvenynev(kifejezés1, kifejezés2, ) leírásból áll, a zárójelek között az aktuális paraméterek felsorolásával. Ha a függvény típusa void, akkor ez a hívás egy önálló utasításként jelenik meg, ha nem, akkor egy olyan kifejezésbe ágyazva, ahol egyébként a függvény típusának megfelel kifejezés állhatna. Erre a pontra helyettesít dik be majd a függvény visszatérési értéke, amelyet a beágyazó kifejezés felhasznál. Az aktuális paraméter lista kifejezéseknek a felsorolása. Ezek száma megegyezik a formális paraméterek számával (kivéve, ha vannak alapértelmezés szerinti értékekkel ellátott paraméterek), és a sorrendjüket annak tudatában kell meghatározni, hogy els kifejezés az els formális paraméterváltozóval, a második a másodikkal, stb. kerül majd párba. Fontos, hogy a kimen adatokat visszaadó paraméterek esetén az aktuális paraméternek változónak kell lenni, hiszen csak ez tudja értékül kapni a visszaadott értéket.

9 EAF I C++ nyelvi elemek felsorolása 9 Program paraméterek Ezek után már nyilvánvaló, hogy a programjaink main() függvénye egy ugyanolyan függvény, mint amelyekr l itt szó esett. Ennek a függvénynek is lehet paramétere, de az kizárólag az alábbi módon: int main(int argc, char *argv[]) Honnan kaphat bemen értékeket a main() függvény, és hova jut el a visszatérési értéke? Azon operációs rendszerb l illetve rendszerbe ahonnan indítjuk a programot. Parancssorból egy program a projekt nevével indítható, és e név után tetszés szerinti bemen értéket (szavakat) írhatunk szóközzel elválasztva. Az argc paraméterváltozóból azt olvashatjuk ki, hogy a program indításának parancssorában hány bejegyzés volt (programnév + paraméterek), az argv[i] pedig az i-edik paramétert tartalmazza. Függvények elhelyezése a programkódban Amikor egy függvényt csak egyetlen forrásállományban akarunk felhasználni (meghívni), akkor a forrásállomány elején deklaráljuk a függvényt, és ugyanennek a forrásállománynak a végén definiáljuk azt. Ha a programunk több állományból áll és több helyen hívjuk meg ugyanazt a függvényt, akkor a függvény deklarációját (más függvény-deklarációkkal együtt) egy külön fejállományban helyezzük el, a függvény-definíciót pedig egy ugyanilyen nev forrásállományban, a fejállományt beinklúdoljuk a függvény-definíciókat tartalmazó forrásállományba, és az összes olyan forrásállományba, ahol a függvényt meg akarjuk hívni. Szöveges fájlok A szöveges fájlok olyan karakteres állományok, amelyekben bizonyos nem látható karakterek a szöveg tördeléséért felel sek. Ezeket a fájlokat kétféleképpen használhatjuk: vagy olvasásra, vagy írásra. Mindkét m velet sorban, egymás után történik Nemcsak karakterenként, hanem nagyobb szintaktikai egységenként is, például soronként, szavanként, stb. olvashatunk illetve írhatunk. Szöveges fájl deklarálása, nyitása, ellen rzése, zárása #include <fstream> ifstream f; // deklaráció; lehetne ofstream is f.open(fnev.c_str()); // nyitás if (f.fail()) // ellen rzés cout << "Nincs módosító fájl" << endl; char ch; cin>>ch; exit(1); f.close(); // lezárás

10 EAF I C++ nyelvi elemek felsorolása 10 Olvasás, írás szöveges fájlra Az olvasásra, írásra majdnem ugyanazok a szabályok érvényesek, mint a standard bemenet illetve kimenet használata esetén. Lényeges különbség az, hogy itt egy olvasás a soron következ szintaktikai egységre, azaz elválasztó jelekkel (szóköz, tabulátor, sorvége) határolt részre vonatkozik. Általános formája beolvasásnál: f >> valtozo; Kiírásnál: f << kifejezes; Karakterek beolvasása szöveges fájlból Az ifstream x; char dx; x >> dx; olvasás alapértelmezés szerint átlépi az elválasztó jeleket. Ha az összes karaktert akarjuk egymás után beolvasni, akkor az olvasás megkezdése el tt ki kell kapcsolni ezt a tulajdonságot: #include <iomanip> ifstream x; x.unsetf(ios::skipws) vagy a x.get(dx); utasítást kell alkalmazni. A kiírás egyformán m ködik a x<<dx illetve az x.put(dx) utasítással. Sorok beolvasása szöveges fájlból string sor; getline(f, sor, \n );

11 EAF I C++ nyelvi elemek felsorolása 11 Osztály A tantárgy els félévében az osztályoknak egy egyszer sített változatát használjuk. Osztály és metódus definíció // osztály definíció class O public: // metódusok deklarációi O(); // konstruktor ~O(); // destruktor Tipus11 Metod1(); Tipus12 Metod2(); ; private: // adattagok Tipus21 tag1; Tipus22 tag2; // metódusok deklarációi Tipus31 Bels Metod1( ); Tipus32 Bels Metod2( ); // metódusok definíciói O::O() O::~O() Tipus11 O::Metod1() Tipus12 O::Metod2() Tipus31 O::Bels Metod1( ); Tipus32 O::Bels Metod2( ); Egy osztály-definíció után már tudunk osztály típusú változókat, úgynevezett objektumokat definiálni. Ezekre az objektumokra mindig végrehajtódik az osztály konstruktora. Ha a konstruktor paramétereket igényel, akkor azokat az objektum definíciójánál meg kell adni: O o( ); Az osztály-definíció után az osztály publikus részben deklarált függvényeket, az úgynevezett metódusokat meghívhatjuk az osztály egy adott objektumára. Egy metódusok hívásakor a metódusneve elé kell írni azt az objektumot (alapértelmezett objektum), amelyre a metódust meghívjuk. o.metod1( )

12 EAF I C++ nyelvi elemek felsorolása 12 A privát rész metódusai viszont csak más metódusokból hívhatóak meg, és alapértelmezett objektuma az t hívó metódus alapértelmezett metódusa. Ezért a hívásuknál nem kell felt ntetni az alapértelmezett objektumot. Az osztályban deklarált metódusokat definiálni kell. Ezek mint azt az el bb láttuk abban különböznek a szokásos függvényekt l, hogy mindegyiknek alapértelmezés szerinti paramétere az osztály egy objektuma. Azt az objektumot, amelyre a metódust meghívták, az adattagok reprezentálják; az adattagok pillanatnyi értékei határozzák meg az objektum értékét. A metódus törzsében ennek az objektumnak az értékéhez az azt reprezentáló adattagokon keresztül, közvetve lehet hozzáférni úgy, hogy az adattagok nevei önálló változónevekként jelennek meg a függvénytörzsben. Ha a metódus más objektumokat is használ, akkor azok adattagjaira a struct szerkezetnél látott módon hivatkozhatunk; az adattag nevei mez nevekként jelennek meg az objektum neve után. o.a1 A programkódunk más részein, a metódosok definícióján kívül, semmilyen formában sem lehet viszont használni a privát adattagokat. Osztályok elhelyezése a programkódban Kétféle elhelyezést engedünk meg. Az els az, amikor az osztály szolgáltatásait (osztályt, mint típusnevet, valamint az osztály publikus metódusait) használó forrásállomány elején definiáljuk az osztályt, és ugyanebben a forrásállományban az egyéb függvény-definíciók között definiáljuk az osztály metódusait. A másik az, amikor egy osztály-definíciót egy külön fejállományban, az ahhoz tartozó metódus-definíciókat egy ugyanilyen nev forrásállományban helyezzük el, és a fejállományt beinklúdoljuk mind a metódus-definíciókat tartalmazó forrásállományba, mind az összes olyan állományba, ahol az osztály szolgáltatásait használni akarjuk. (B vebbet lásd még a modulokra bontásról szóló részben.) Konstans metódusok Olyan metódusok, amelyek nem változtatják meg az alapértelmezett objektum adattagjait. Ezt a formális paraméter lista mögött elhelyezett const szó jelzi. A fordító program ellen rzi. Inline metódus definíció A metódusnak az osztálydefinícióban történ definiálása, amit a metódus deklarációjának helyébe írunk. Csak egyszer függvénytörzs esetén alkalmazuk. Konstruktorok és destruktor Minden osztálynak vannak speciális metódusai, az osztály nevével megegyez konstruktorai illetve ezek ellentét párja, a destruktor. (Ha elfelejtenénk definiálni ilyeneket, akkor is lesz egy alapértelmezett konstruktor illetve destruktor.) A konstruktorok feladata egy adott objektumot reprezentáló adattagok létrehozása, a destruktoré azok megsz ntetése. Egy osztálynak több (paraméterezésükben eltér ) konstruktora is lehet. Ezek törzsében olyan kódot írhatunk, amely az általunk megadott módon inicializálja az adattagokat. Különösen el nyös ez akkor, amikor egy típus osztállyal történ megvalósításánál a típusértéket (az

13 EAF I C++ nyelvi elemek felsorolása 13 objektum értékeket) reprezentáló adattagokra teljesülnie kell egy invariáns állításnak, amit már az objektum létrehozásakor érvényesíteni akarunk. Destruktorból csak egy van. Egyszer osztályok készítésénél, azaz statikus reprezentációjú típus (lásd implementációs tanácsok) megvalósításánál csak akkor definiálunk destruktort (különben az alapértelmezett destruktor van érvényben), amikor a konstruktorban olyan inicializáló utasítást használtunk, amelynek van befejez párja. (Például fájloknál az openclose utasításpár.) Adattagok inicializálása a konstruktor fejében A konstruktorok definíciójában az alapértelmezett objektum adattagjainak a formális paraméter listát követ kett spont után elhelyezett listában is adhatunk kezd értéket, ami után következik majd a függvény törzse. O::O(): tag1(érték1), tag2(érték2),

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Egyszerű C++ program szerkezete A konzol alkalmazás projektjébe egyetlen cpp kiterjesztésű (alapértelmezésben main.cpp) forrásállomány tartozik. Az

Részletesebben

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Egyszerű C++ program szerkezete A konzol alkalmazás projektjébe egyetlen cpp kiterjesztésű (alapértelmezésben main.cpp) forrásállomány tartozik. Az

Részletesebben

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Egyszerű C++ program szerkezete A konzol alkalmazás projektjébe egyetlen cpp kiterjesztésű (alapértelmezésben main.cpp) forrásállomány tartozik. Az

Részletesebben

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1 Gregorics Tibor Modularizált programok C++ nyelvi elemei 1 Függvények és paraméterátadás A függvény egy olyan programblokk, melynek végrehajtását a program bármelyik olyan helyéről lehet kezdeményezni

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

Maximum kiválasztás tömbben

Maximum kiválasztás tömbben ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while

Részletesebben

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

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

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

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1 Gregorics Tibor Tanácsok modularizált programok készítéséhez 1 Modularizált programon azt értjük, amely több, jól körülhatárolható részfeladat megoldásaiból épül fel. Egy-egy részfeladat gyakran szabványos

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

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

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

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

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

Részletesebben

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

A C programozási nyelv II. Utasítások. A függvény.

A C programozási nyelv II. Utasítások. A függvény. A C programozási nyelv II. Utasítások. A függvény. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv II (Utasítások, fuggvények) CBEV2 / 1 Kifejezés utasítás Kifejezés utasítás, blokk

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

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

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

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

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

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

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

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

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

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

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

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

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 C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.

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

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

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

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

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

Programozás C++ -ban

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

Részletesebben

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

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

Részletesebben

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

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

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

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

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

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

Részletesebben

Bevezetés a programozásba. 9. Előadás: Rekordok

Bevezetés a programozásba. 9. Előadás: Rekordok Bevezetés a programozásba 9. Előadás: Rekordok ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double terulet(double

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

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

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

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

Részletesebben

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

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba

Részletesebben

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

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

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix

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

Programozási alapismeretek 2009/2010

Programozási alapismeretek 2009/2010 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 1 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 2 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 3 Ennek a játék a betűkkel -szerű absztrakciónak

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

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

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

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

Programozás C++ -ban 2007/1

Programozás C++ -ban 2007/1 Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó

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

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1 C++ I/O Bevezetés Izsó Tamás 2014. február 20. Izsó Tamás C++ I/O / 1 Section 1 Bevezetés Izsó Tamás C++ I/O / 2 Irodalom Izsó Tamás C++ I/O / 3 Paraméter illesztés függvénynév túlterhelés esetén 1 Pontos

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

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

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

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

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását. 1. Motiváció C nyelvben a printf és a scanf függvények használata a programozótól nagy körültekintést igényel. A változó számú argumentum miatt a fordító nem tudja ellenőrizni, hogy a formátum mezőben

Részletesebben

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

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

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 18. 2. El adás Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float

Részletesebben

Memóriakezelés, dinamikus memóriakezelés

Memóriakezelés, dinamikus memóriakezelés Metódus: függvények és eljárások összefoglaló neve. Memóriakezelés, dinamikus memóriakezelés Nézzük végig, a C++ memóriakezelését. Alapvetően három fő memóriaterületet különböztetünk meg. Végrehajtási

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

1. Jelölje meg az összes igaz állítást a következők közül!

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

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

Java és web programozás

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

Részletesebben

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

C++ programozási nyelv Struktúrák a C++ nyelvben C++ programozási nyelv Struktúrák a C++ nyelvben Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/37 Bevezetés A

Részletesebben

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

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás: Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból

Részletesebben

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok. Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

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

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

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

Kivételkezelés a C++ nyelvben Bevezetés

Kivételkezelés a C++ nyelvben Bevezetés Kivételkezelés a C++ nyelvben Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Kivételkezelés a C++ nyelvben CPP9 / 1 Hagyományos hibakezelés Függvény visszatérési értéke (paramétere) hátrányai:

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban

Részletesebben

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

Részletesebben

Programozási nyelvek Java

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

Részletesebben

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 Minta programterv a 1. házi feladathoz 1.

Programozás Minta programterv a 1. házi feladathoz 1. Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat

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

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

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

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

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

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

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