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

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

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

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

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 I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

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

Programozási Nyelvek (C++) Összefoglaló Programozási Nyelvek (C++) Összefoglaló Somogyi Krisztián gondozásában 2009-12-22 1. tétel: Fordítás [fordítási egység; warning; error; g++ kapcsolók] A teljes programot általában lehetetlen egy fájlban

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

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

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

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

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

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

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

Részletesebben

Fejlett programozási nyelvek C++ Iterátorok

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

Részletesebben

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

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 Veszélyforrások csökkentése C + javítások C++ kialakulása C++ Objektum orientált szemlélet

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

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

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Programozási Nyelvek: C++

Programozási Nyelvek: C++ Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();

Részletesebben

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, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

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, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

Részletesebben

C++ Standard Template Library (STL)

C++ Standard Template Library (STL) Programozási Nyelvek és Fordítóprogramok Tanszék Programozási Nyelvek I. Témák 1 STL alapok 2 STL fogalmak 3 Konténerek 4 Iterátorok 5 Funktorok C++ STL Ne fedezzük fel újra spanyolviaszt! Sok adatszerkezet/algoritmus

Részletesebben

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

Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} };

Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} }; A C++ kódokban lévő makrókat melyik egység dolgozza fel az alábbiak közül? preprocessor A szabványos C++-ban nem is írhatunk makrókat (csak C-ben) assembler linker Az alábbi példában a Foo f(5); konstruktor

Részletesebben

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

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

Részletesebben

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

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

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

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

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

Programozási technológia

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

Részletesebben

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

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

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

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

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

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

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

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

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

Részletesebben

500. AA Megoldó Alfréd AA 500.

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

Részletesebben

500. CC Megoldó Alfréd CC 500.

500. CC Megoldó Alfréd CC 500. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: G1/IB.146 Hiány:3 ZH:7,71 MEGOLD SCH/500. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Alprogramok, paraméterátadás

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

Részletesebben

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

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 I gyakorlat. 10. Stringek, mutatók

Programozás I gyakorlat. 10. Stringek, mutatók Programozás I gyakorlat 10. Stringek, mutatók Karakter típus A char típusú változókat karakerként is kiírhatjuk: #include char c = 'A'; printf("%c\n", c); c = 80; printf("%c\n", c); printf("%c\n",

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

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

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

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

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: C++ referencia Izsó Tamás 2017. február 17. 1. Bevezetés A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: Sokan összetévesztik a pointerrel. Keveset alkalmazzák

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

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

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

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

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

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

Bevezetés a Programozásba II 12. előadás. Adatszerkezetek alkalmazása (Standard Template Library)

Bevezetés a Programozásba II 12. előadás. Adatszerkezetek alkalmazása (Standard Template Library) Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 12. előadás (Standard Template Library) 2014.05.19. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

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

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

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

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

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

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

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

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:

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

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

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

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

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

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

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

Részletesebben

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

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

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

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

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

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

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

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

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

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

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

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

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

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

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

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

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

Informatikai Kar. 3. fejezet. alapismeretek. Giachetta Roberto

Informatikai Kar. 3. fejezet. alapismeretek. Giachetta Roberto Informatikai Kar 3. fejezet alapismeretek Giachetta Roberto Actually I made up the term 'Object-Oriented', and I can tell you I did not have C++ in mind. (Alan Kay) adottak) 3:3 Feladat: Stack) adatszerkezetet

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

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