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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Átírás

1 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 március 4.

2 Deklaráció és definíció C++ típusok C++ nyelvben használható típusok, változók, aritmetika Deklaráció Minden névről meg kell mondani mire szeretnénk használni, mert ennek a hiányában a fordító nem tud mit kezdeni az adott névvel A tulajdonságai a következők: típus, tárolási osztály, láthatóság Nem történik memória foglalás Definíció Ha az a cél, hogy a deklarációnak megfelelő objektum is létrejöjjön a memóriában akkor DEFINÍCIÓT kell alkalmazni. A DEFINÍCIÓ olyan DEKLARÁCIÓ, amely helyfoglalással jár. Fodor A. (Pannon Egyetem) Programozás március 4. 2 / 43

3 A C++ nyelv típusai C++ típusok C++ nyelvben használható típusok, változók, aritmetika Skalár (egyszerű típus) Aritmetikai típusok Egész jellegű típusok char int enum Lebegőpontos típusok float double Mutató típusok Referencia típus void Összetett típus Összeállított típusok Tömb típusok Structúra (struct) típusok Unió (union) típusok Fodor A. (Pannon Egyetem) Programozás március 4. 3 / 43

4 C++ típusok C++ nyelvben használható típusok, változók, aritmetika Alaptípusok, Típusmódosítók, Típusminősítők, Típuselőírás Alaptípusok char int float double enum struct union void (típusnév hiánya; üres típus) Típusmódosítók short (a tárolási hosszat szabályozza) long (a tárolási hosszat szabályozza) signed (előjeles) unsigned (előjel nélküli) Típusminősítők: const (olyan objektum definiálható, amely nem változatható meg (olvasható objektum)) Típuselőírás: (alaptípus, típusmódosítók, típusminősítők) Fodor A. (Pannon Egyetem) Programozás március 4. 4 / 43

5 C++ típusok Változók mérete (sizeof operátor) C++ nyelvben használható típusok, változók, aritmetika sizeof kifejezés sizeof(típus) sizeof(char) 1 byte (8 bit) sizeof(short) 2 byte (16 bit) sizeof(long) 4 byte (32 bit) sizeof(short) sizeof(int) sizeof(int) sizeof(long) Az int mindig az adott arcitektúrán a gépi szó mérete Fodor A. (Pannon Egyetem) Programozás március 4. 5 / 43

6 C++ típusok C++ nyelvben használható típusok, változók, aritmetika Az MS Visual Studio-ban használható típusok (Nem csak ANSI C++ típusok) Fodor A. (Pannon Egyetem) Programozás március 4. 6 / 43

7 Változók és aritmetika C++ típusok C++ nyelvben használható típusok, változók, aritmetika Aritmetikai műveletek: char, int, float, double, enum + // összeadás vagy előjel, egy- és kétoperandusú is lehet - // kivonás vagy előjel, egy- és kétoperandusú is lehet * // szorzás / // osztás % // maradékképzés Összehasonlító műveletek: char, int, float, double, enum == // egyenlő!= // nem egyenlő < // kisebb > // nagyobb <= // kisebb vagy egyenlő >= // nagyobb vagy egyenlő Bitenkénti operátorok Logikai operátorok Léptető operátorok Fodor A. (Pannon Egyetem) Programozás március 4. 7 / 43

8 C++ típusok Referencia (hívatkozás) típus Referencia típus Egy objektum "álneve" (alias) Függvények (és túlterhelt operátorok) paramétereinek és visszatérési értékeinek megadására használható hatékonyan A jelölés jelentése: "Hivatkozás A-ra" int i = 100; int& ref = i; // r és i itt ugyanarra az int-re hivatkoznak int x = ref; // x = 100 ref = 200; // i = 200 A referencia célpontját létrehozáskor meg kell határozni!!! int& ref = i; int& ref2; extern int& ref3; // OK // Hibás referencia megadás // nincsen kezdeti érték megadva // OK (Később kap értéket) Fodor A. (Pannon Egyetem) Programozás március 4. 8 / 43

9 C++ típusok Referencia (hívatkozás) típus Referencia típus A referencián nem hajtódik végre utasítás (nem változik az értéke) Az utasítás mindig azon hajtódik végre, amire mutat a referencia int i = 0; int& ref = i; ref++; int* p = &ref; // i növelése // p az i-re mutat void cplusplus(int& c) c++; } Egyes fordítók fizikailag referenciával valósítják meg a referencia típust Fodor A. (Pannon Egyetem) Programozás március 4. 9 / 43

10 Felhasználói típus C++ típusok Felhasználói típus Absztrakt típus (abstract data type, ADT) Felhasználói típus (user-defined type) A beépített típusokkal közel azonos viselkedés Megközelítés: "Döntsd el, mely típusokra van szükség és mindegyikhez biztosíts teljes műveletkészletet." Stroustrup Absztrakt típus (abstract data type, ADT) A felület elszigeteli a felhasználót a megvalósítás részleteitől Konkrét típus A felület nem teljesen szigeteli el a felhasználót a megvalósítás részleteitől Fodor A. (Pannon Egyetem) Programozás március / 43

11 C++ típusok Felhasználói típus - példa Felhasználói típus Complex számok kezelése class CComplex private: double Im, Re; public: CComplex(double x, double y, bool IsImRe=1); CComplex() Im=0; Re=0;}; double GetIm() const return Im;}; double GetRe() const return Re;}; double GetR() const return sqrt(re*re+im*im);} double GetPhi(); double SetIm(double x) Im = x;}; double SetRe(double x) Re = x;}; }; Fodor A. (Pannon Egyetem) Programozás március / 43

12 C++ típusok Felhasználói típus - operátor Felhasználói típus Probléma: Milyen műveletek értelmezettek a típuson Összeadás, kivonás, összehasonlítás, stb. I. megoldás Osztályfüggvények alkalmazása Minen művelethez meg kell írni Meg kell hívni egyesével a függvényeket az osztálypéldányon I. megoldás Operátorok alklamazása (+ - * / ==!= stb.) Operátorokat el kell készíteni Fodor A. (Pannon Egyetem) Programozás március / 43

13 C++ típusok Felhasználói típus Felhasználói típus operátora - példa Complex számok kezelése class CComplex private: double Im, Re; public: CComplex(double x, double y, bool IsImRe=1); CComplex() Im=0; Re=0;}; double GetIm() const return Im;}; double GetRe() const return Re;}; double GetR() const return sqrt(re*re+im*im);} double GetPhi(); double SetIm(double x) Im = x;}; double SetRe(double x) Re = x;}; }; friend CComplex operator+(ccomplex a1, CComplex a2); friend CComplex operator-(ccomplex a1, CComplex a2); friend CComplex operator/(ccomplex a1, CComplex a2); friend CComplex operator*(ccomplex a1, CComplex a2); friend bool operator==(ccomplex a1, CComplex a2); friend bool operator!=(ccomplex a1, CComplex a2); Fodor A. (Pannon Egyetem) Programozás március / 43

14 C++ típusok Felhasználói típus Felhasználói típus operátora - példa Complex számok kezelése CComplex operator+(ccomplex a1, CComplex a2) return CComplex(a1.Re+a2.Re, a1.im+a2.im); } CComplex operator-(ccomplex a1, CComplex a2) return CComplex(a1.Re-a2.Re, a1.im-a2.im); } bool operator==(ccomplex a1, CComplex a2) return ((a1.re==a2.re)&&(a1.im==a2.im))?true:false; } bool operator!=(ccomplex a1, CComplex a2) return ((a1.re==a2.re)&&(a1.im==a2.im))?false:true; } Fodor A. (Pannon Egyetem) Programozás március / 43

15 C++ típusok Felhasználói típus Felhasználói típus operátora - példa Complex számok kezelése ComplexExample() CComplex c1(1,0); CComplex c2(1,1); } CComplex c3 = c1 + c2*ccomplex(1, 2); //... if (c1!= c2) c3 = (c1/c2) + c2; else c3 = (c1/c2); Fodor A. (Pannon Egyetem) Programozás március / 43

16 Mutatók C++ típusok Mutatók, Tömbök Minden változó memóriában levő helye (címe) képezhető Minden függvény memóriában levő helye (címe) képezhető Ez a cím mutató típusban (pointerben) tárolható A pointer típus értékkészlete egy memória cím A pointer mindig egy meghatározott típusú objektumra mutat Fodor A. (Pannon Egyetem) Programozás március / 43

17 Mutatók használata C++ típusok Mutatók, Tömbök Mutató típus definiálása: pointer_tipusa *pointer_neve Változó címének meghatározása: &valtozo_neve Mutató által mutatott változó értéke: *pointer_neve int i, *ip, v[10]; i = 123; ip = &i; *ip = 123; ip = &v[2]; double d, *dp double* dp2; void *p; int **ipp; int* *ipp2; Fodor A. (Pannon Egyetem) Programozás március / 43

18 Tömb mérete A fordítóprogram határozza meg az elemtípusok méretének a függvényében A méret mindig fordítási időben döl el! Méret meghatározása: sizeof(tömb_neve)/sizeof(elem_típusa); int v[50]; int n=sizeof(v)/sizeof(int); Tömb bejárása Általában for ciklussal történik int i; register int i; //Nagy elemszám esetén for(i=0; i<n; v[i++]=0); Kezdeti érték adása tömböknek tipus tömb_neve[] = érték1, érték2...; A tömb méretét a fordító határozza meg a felsorolt konstansok alapján int adatok[] = 1, 2, 3, 4, 5; char szoveg[] = "alma"; char szoveg2[] = 65, 76, 77, 65, 0 ; Fodor A. (Pannon Egyetem) Programozás március / 43 Tömb alkalmazása C++ típusok Mutatók, Tömbök

19 Többdimenziós tömbök C++ típusok Mutatók, Tömbök Megadása: típus tömb_neve[méret_dim1][méret_dim2] típus tömb_neve[méret_dim1][méret_dim2][méret_dim3] típus tömb_neve[méret_dim1][méret_dim2]...[méret_dim_n] int i,j; int tomb2d[100][50] for(i=0; i<100; i++) for(j=0; j<50; j++) tomb2d[i][j]=0; Fodor A. (Pannon Egyetem) Programozás március / 43

20 Sablon/Tamplate osztály C++ típusok Template osztály Ötlet: Az osztály általánosítása sablon létrehozása template<class T> előtag T-t az utána következő deklaráció paraméterévé teszi. Verem kezelése template<class T> class CStack T* v; int max_size; int top; public: class Underflow }; // hibakezelés class Overflow }; // hibakezelés CStack(int s); // konstruktor ~CStack(); // destruktor void Push(T); T Pop(); }; Fodor A. (Pannon Egyetem) Programozás március / 43

21 Sablon/Template osztály C++ típusok Template osztály Verem kezelése (Függvények megadása) template<class T> void CStack<T>::Push(T c) if (top == max_size) throw Overflow(); v[top] = c; top = top + 1; } template<class T> T CStack<T>::Pop() if (top == 0) throw Underflow(); top = top - 1; return v[top]; } Fodor A. (Pannon Egyetem) Programozás március / 43

22 Sablon/Template osztály C++ típusok Template osztály Verem kezelése (Függvények megadása) CStack<int> st_int(100); CStack<CComplex> st_cmplx(50); CStack< list<int> > st_list(50); // verem 100 int-nek // verem 50 komplex számnak // verem 50, int-ből álló lista számára void StackExample() st_int.push(100); if (st_int.pop()!= 100) //... //Hiba a veremkezelésben } } st_cmplx.push(ccomplex(0,0)); if (st_cmplx.pop()!= CComplex(0,0)) //... //Hiba a veremkezelésben } Fodor A. (Pannon Egyetem) Programozás március / 43

23 C++ típusok Template osztály Sablon/Template osztály használata Adatszerkezetek kezelése Lista Vektor Tömbök (map) stb. Fordítási időben van jelentősége Nem növeli meg futási időt a "hagyományos kódoláshoz" képest Container Class (tároló, konténer) Osztály elnevezés Valamilyen típusú elemek gyűjteményét tartalmazza Fodor A. (Pannon Egyetem) Programozás március / 43

24 iostream Standard könyvtárak iostream Adatfolyam-bemeneti és -kimeneti szolgáltatások Kimenetek és bemenetek kezelése A << kimeneti operátor második operandusát beírja az elsőbe A >> bemeneti operátor első operandusát beírja a másodikba Karakterláncok (string) kezelése Listák, vektorok kezelése. #include <iostream> #include<string> #include<list> CComplex c(1,0), c2(1,1); std::cout << "Im: " << c.getim() << " Re: " << c.getre() << " \n\n"; std::string str = "Szoveg..."; int i; std::in >> i; Fodor A. (Pannon Egyetem) Programozás március / 43

25 Kimenet Standard könyvtárak iostream iostream könyvtár meghatároz egy kimenetet A << kimeneti operátor második operandusát beírja az elsőbe #include <iostream> #include<string> #include<list> //... CComplex c(1,0), c2(1,1); printf("im: %lf \nre : %lf \n\n", c.getim(), c.getre()); std::cout << "Im: "; std::cout << c.getim(); std::cout << " Re: "; std::cout << c.getre(); std::cout << "\n\n"; std::cout << "Im: " << c.getim() << " std::string str = "Szoveg..."; Re: " << c.getre() << " \n\n"; Fodor A. (Pannon Egyetem) Programozás március / 43

26 Névtér Standard könyvtárak iostream Standard könyvtár az std névtérhez tartozik std::cout helyett, ha cout nem működik #include <iostream> #include<string> //... CComplex c(1,0), c2(1,1); cout << "Im: "; cout << c.getim(); cout << " Re: "; cout << c.getre(); cout << "\n\n"; string str = "Szoveg..."; Hiba: complex.cpp(130) : error C2065: cout : undeclared identifier Fodor A. (Pannon Egyetem) Programozás március / 43

27 Névtér beállítása Standard könyvtárak iostream Névtér beállítása using namespace nevter_neve; #include <iostream> #include<string> //... CComplex c(1,0), c2(1,1); std::cout << "Im: "; std::cout << c.getim(); std::cout << " Re: "; std::cout << c.getre(); std::cout << "\n\n"; //Itt nem hagyható el az std:: using namespace std; cout << "Im: " << c.getim() << " Re: " << c.getre() << " \n\n"; string str = "Szoveg..."; Hiba: (a névtér beállítása előtt hanyagoljuk el a beállítást) complex.cpp(130) : error C2065: cout : undeclared identifier Fodor A. (Pannon Egyetem) Programozás március / 43

28 Bemenet Standard könyvtárak iostream istreams szolgál bemenetek kezelésére A >> bemeneti operátor első operandusát beírja a másodikba #include <iostream> \\... using namespace std; \\... int i; cin >> i; double d; cin >> d; Fodor A. (Pannon Egyetem) Programozás március / 43

29 Bemenet Standard könyvtárak iostream Egész sor beolvasása getline() függvény segítségével #include <iostream> #include <string> \\... using namespace std; \\... string str; cout << "Írja be a nevét!\n"; getline(cin,str); cout << "Helló, " << str << "!\n"; Fodor A. (Pannon Egyetem) Programozás március / 43

30 Karakterlánc (string) Standard könyvtárak iostream Karaktersorozatok eltárolására használható típus Karaktrlánc-műveletek Operátorok használata (pl.: + - ==!=) #include <iostream> #include<string> //... using namespace std; string str1 = "Programozás "; string str2 = "Előadás "; string TantargyNev = str1+str2; Fodor A. (Pannon Egyetem) Programozás március / 43

31 Karakterlánc (string) Standard könyvtárak iostream Kimenetre, bemenetre átirányítható: string str1 = "Helyes?"; string str2; cout << str1; cin >> str2; Összehasonlítás string str2; cout << "Helyes? (igen/nem); cin >> str2; if (str2 == "igen")... } Fodor A. (Pannon Egyetem) Programozás március / 43

32 Karakterlánc (string) Standard könyvtárak iostream Paraméterként átadható #include <iostream> \\... using namespace std; \\... void AddNewLine(string& str1, string& str2) str1 = str1 + \n ; str2 += \n ; } \\... string str1="123"; string str2="1234"; AddNewLine(str1, str2); cout << str1 << " " << str2 << " "; Fodor A. (Pannon Egyetem) Programozás március / 43

33 Standard könyvtárak iostream Stringeken értelmezhető műveletek/fogalmak Bejárók Az elemek (karakterek) elérése Konstruktor Hibák kezelése, detektálása Értékadás Átalakítás C stílusú karakterláncra Összehasonlítás Beszúrás Összefűzés Keresés Csere Részláncok Méret és kapacitás (memóriakezeléssel kapcsolatos) Ki- és bemeneti műveletek Felcserélés Fodor A. (Pannon Egyetem) Programozás március / 43

34 C stílusú string Standard könyvtárak iostream string típus átalakítható Kompatibilítás miatt szükséges/hasznos c_str() tagfüggvény végzi az átalakítást #include <iostream> #include <string> \\... using namespace std; \\... void 2_C_String(string& str1) printf("szoveg: %s\n",str1.c_str()); } Fodor A. (Pannon Egyetem) Programozás március / 43

35 Szabványos tárolók Tárolók Tárolók Szabványos tárolók vector<t> Változó hosszúságú vektor list<t> Kétirányú láncolt lista Queue<T> Sor Stack<T> Verem Deque<T> Kétvégű sor Priority_queue<T> Érték szerint rendezett sor set<t> Halmaz Multiset<T> Halmaz, melyben egy érték többször is előfordulhat Map<kulcs,érték> Asszociatív tömb Multimap<kulcs,érték> Asszociatív tömb, melyben egy kulcs többször előfordulhat std névtérhez tartoznak Header állományokat be kell rakni! <vector>, <list>, <map>, stb. Fodor A. (Pannon Egyetem) Programozás március / 43

36 Vektor Tárolók Vektor Probléma: C nyelvben rögzített méret C nyelvben fordítási időben meg kell adni a méretet Nem hatékony a memóriakezelés struct VarStar public: string Name; double JD; double Magnitude; }; VarStar Observe[1000]; Observe[2].JD = ; Observe[2].Name = "R CRB"; Observe[2].Magnitude = "6.2"; //C++ Fodor A. (Pannon Egyetem) Programozás március / 43

37 Vektor Tárolók Vektor Megoldás, hiányosságok pótlása: Futási időben megadható méret Futási időben változtatható méret Hibás indexelés detektálása #include <string> #include <vector> using namespace std; class CVarStar public: string Name; double JD; double Magnitude; }; vector<cvarstar> Observe(1000); Observe[2].JD = ; Observe[2].Name = "R CRB"; Observe[2].Magnitude = "6.2"; Fodor A. (Pannon Egyetem) Programozás március / 43

38 Vektor kezelése Tárolók Vektor Vektor bejárása Hasonlóan a C-s vektorbejáráshoz void PrintStar(int i) cout << Observe[i].Name << << Observe[i].JD << << Observe[i].Magnitude << \n ; } void PrintObserve() for(i=0; i<observe.size(); i++) PrintStar(i); } Fodor A. (Pannon Egyetem) Programozás március / 43

39 Vektor mérete Tárolók Vektor Vektor méretének lekérdezése size() függvény segítségével Vektor méretének megváltoztatása Futási időben változtatható méret Növelhető, Csökkenthető A méret lekérdezhető void AddStars(int n) Observe.resize(Observe.size()+n); } Fodor A. (Pannon Egyetem) Programozás március / 43

40 Tartományellenőrzés Tárolók Vektor Alapértelmezés szerint nincsen benne tartományellenőrzés Akár túl is tudjuk indexelni VarStar Observe[1000]; Observe[1001].JD = ; Observe[1002].Name = "R CRB"; Observe[1003].Magnitude = "6.2"; Gondoskodni kell az ellenőrzősről! Saját függvénnyel leszármaztatott osztályban Kivételkezeléssel Fodor A. (Pannon Egyetem) Programozás március / 43

41 Lista Tárolók Lista A vektor adatszerkezetben az adatok törlése, hozzáfűzése csak nehézkesen oldható meg Megoldás Lista használata #include <list> using namespace std; list<cvarstar> ObserveList; void AddStar(const CVarStar& obs, list<cvarstar>::iterator i) ObserveList.push_front(obs); // hozzáadás a lista elejéhez ObserveList.push_back(obs); // hozzáadás a lista végéhez ObserveList.insert(i, obs); // hozzáadás az i által mutatott el } Fodor A. (Pannon Egyetem) Programozás március / 43

42 Asszociatív tömb Tárolók Asszociatív tömb Listában a keresés csak nehezen lehetséges Listában a keresés rossz hatékonyságú Olyan adatszerkezet kellene, amely a következőket tudja: Támogatja a beszúrást Támogatja a törlést Támogatja az érték szerinti keresést Megoldás Standard könyvtár map típusa A map egy értékpár-tároló Léterehozása map<tipus_)kulcs,tipus_ertek> asszociativ_tomb_neve; Szokásos elnevezései: map / asszociatív tömb / szótár Fodor A. (Pannon Egyetem) Programozás március / 43

43 Asszociatív tömb - példa Tárolók Asszociatív tömb #include <list> #include <string> using namespace std; map<string,double> ObserveMap; void PrintOneObserve(const string& starname) if (double i = ObserveMap[starname]) cout << starname << << i << \n ; } Illeszkedést keres Ha nem talál illeszkedést az a kulcsra (starname), a ObserveMap egy alapértével tér vissza Fodor A. (Pannon Egyetem) Programozás március / 43

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

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

Információs Technológia

Információs Technológia Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember

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

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

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

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

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

Részletesebben

A 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

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

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

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

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

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

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

Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés

Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 8. előadás Strukturált programozás: dinamikus memóriakezelés Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 8. Csak bázisosztályként használt/értelmezhető

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia (Struktúra, mutatók, függvényhívás) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 14/21. Struktúra

Részletesebben

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

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)

Részletesebben

Alkalmazott modul: Programozás 10. fejezet. Strukturált programozás: dinamikus memóriakezelés. Giachetta Roberto

Alkalmazott modul: Programozás 10. fejezet. Strukturált programozás: dinamikus memóriakezelés. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 10. fejezet Strukturált programozás: dinamikus memóriakezelés Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2015.

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

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

500. AA Megoldó Alfréd AA 500.

500. AA Megoldó Alfréd AA 500. Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

Programozás alapjai. 5. előadás

Programozás alapjai. 5. előadás 5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk

Részletesebben

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

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

Részletesebben

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

1. Bevezetés A C++ nem objektumorientált újdonságai 3 Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.

Részletesebben

Bevezetés, a 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

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

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

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

Programozas 1. Strukturak, mutatok

Programozas 1. Strukturak, mutatok Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség

Részletesebben

128. AA Megoldó Alfréd AA 128.

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

Részletesebben

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

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

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

Részletesebben

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

117. AA Megoldó Alfréd AA 117.

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

Részletesebben

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

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre BME IIT Veszélyforrások csökkentése C + javítások C++ kialakulása C++ Objektum orientált szemlélet

Részletesebben

Challenge Accepted:C++ Standard Template Library

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

Részletesebben

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

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

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

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

Programozás alapjai 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

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

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

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

Részletesebben

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

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

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

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 2. gyakorlat Változók, kiiratás, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24, 2007 1 tar@dcs.vein.hu

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

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

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

Osztály és objektum fogalma

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

Részletesebben

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

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

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 9. gyakorlat Sztringkezelés, mutatók Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 2, 2009 1 tar@dcs.vein.hu Tar

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

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

Programozás 5. Dr. Iványi Péter Programozás 5. Dr. Iványi Péter 1 Struktúra Véges számú különböző típusú, logikailag összetartozó változó együttese, amelyeket az egyszerű kezelhetőség érdekében gyűjtünk össze. Rekord-nak felel meg struct

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

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

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

Részletesebben

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

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

Programozás II gyakorlat. 8. Operátor túlterhelés Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,

Részletesebben

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

Programozás 3. Dr. Iványi Péter Programozás 3. Dr. Iványi Péter 1 Egy operandus művelet operandus operandus művelet Operátorok Két operandus operandus1 művelet operandus2 2 Aritmetikai műveletek + : összeadás -: kivonás * : szorzás /

Részletesebben

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál? Típus definiálás Ennek általános alakja: typedef típus név Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál? typedef double vector[3];

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

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

Generikus Típusok, Kollekciók

Generikus Típusok, Kollekciók Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections

Részletesebben

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

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

Részletesebben

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

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

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

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

PROGRAMOZÁSI NYELVEK - CPP. ELŐADÁS JEGYZET

PROGRAMOZÁSI NYELVEK - CPP. ELŐADÁS JEGYZET PROGRAMOZÁSI NYELVEK - CPP ELŐADÁS JEGYZET Szerkesztette: Balogh Tamás 2013 április 12 Ha hibát találsz, kérlek jelezd a info@baloghtamashu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add

Részletesebben

Bevezetés a programozásba. 11. Előadás: Esettanulmány

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

Részletesebben

Bevezetés a programozásba 2

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

Részletesebben

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 I. - 11. gyakorlat

Programozás I. - 11. gyakorlat Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar

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

Típusok és konstansok

Típusok és konstansok Programozás I. Széchenyi István Egyetem, Gy r 2013. október 3. Szimbólumok Forráskód részei: szimbólumok (szintaktikai egységek, tokenek) fehér karakterek (összevonás, gyelmen kívül hagyás) Szimbólumok:

Részletesebben

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

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék Programozás Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 11. Tantárgy célja, szükséges ismeretek Tantárgy célja,

Részletesebben

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

Programozás II gyakorlat. 4. Öröklődés Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési

Részletesebben

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

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

Adatszerkezetek 1. Dr. Iványi Péter

Adatszerkezetek 1. Dr. Iványi Péter Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk

Részletesebben

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 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

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

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 6. Konstansok A C nyelvben konstansokat makróval is deklarálhatunk. Ebben az esetben mindenhol ahol a makró előfordul a fordító a definiált értéket behelyettesíti a makró helyére.

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

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel (record) tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel elemei mezők. Például tétel: személy elemei: név, lakcím, születési

Részletesebben

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

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

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

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

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

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

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

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

Részletesebben

Bevezetés a C++ programozásba

Bevezetés a C++ programozásba Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek

Részletesebben

Óbudai Egyetem. C programozási nyelv

Óbudai Egyetem. C programozási nyelv Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv Struktúrák és Unionok Dr. Schuster György 2016. október 6. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási 2016. októbernyelv

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

Fejlett programozási nyelvek C++ Sablonok és adatfolyamok

Fejlett programozási nyelvek C++ Sablonok és adatfolyamok Fejlett programozási nyelvek C++ Sablonok és adatfolyamok 11. előadás Antal Margit 2009 slide 1 Témakörök Sablonok Függvénysablon Osztálysablon Sablon metaprogramozás Adatfolyamok Operátorok és manipulátorok

Részletesebben