2015/10/08 13:39 1/33 A C++ nyelv. A forráskód elkészítéséhez a CodeBlocks fejlesztő eszközt használjuk, amely a következő oldalon érhető el:

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

Download "2015/10/08 13:39 1/33 A C++ nyelv. A forráskód elkészítéséhez a CodeBlocks fejlesztő eszközt használjuk, amely a következő oldalon érhető el:"

Átírás

1 2015/10/08 13:39 1/33 A C++ nyelv < Cpp A C++ nyelv Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: Bevezetés Fejlesztői környezet A forráskód elkészítéséhez a CodeBlocks fejlesztő eszközt használjuk, amely a következő oldalon érhető el: Ha a gépeden nincs MingW telepítve akkor ez a változat szükséges: codeblocks-10.05mingwsetup.exe Ha CodeBlocksot telepítesz, a használható fejlécállományokat itt találod: c:\program Files\CodeBlocks\MinGW\lib\gcc\mingw32\4.7.1\include\c++\ Fordító A forráskód lefordításához a GCC fordítót használjuk, amelynek Windowsos megvalósítása a MingW32. A MinGW32 fordító feltelepíthető külön is a következő oldalról: Egyéb fordítók Intel C++ Compiler Visual C++ Borland C++ Compiler Watcom C++ Compiler Még több C++ fordító: Szabvány Amit használunk

2 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv Legújabb szabvány A fordítók csak részben ismerik (2011) Történet A C++ nyelv kifejlesztője: Bjarne Stroustrup (Dánia) as szabvány: Év C szabvány C++ szabvány 2011 ISO/IEC 14882: ISO/IEC 9899:1999/Cor 3:2007 (A C99 harmadik javítása) ISO/IEC 9899:1999/Cor 2:2004 (A C99 második javítása) ISO/IEC TR 19768:2007 Kiterjesztések C++11 vagy C++0x C++TR ISO/IEC 14882:2003 C ISO/IEC 9899:1999/Cor 1:2001 (A C99 első javítása) 1999 ISO/IEC 9899:1999 C ISO/IEC 14882:1998 C ISO/IEC 9899:1990/Cor 2:1996 (A C90 második javítása) ISO/IEC 9899:1990/Amd 1:1995 (Irányadó javítás NA-ről C90-re) ISO/IEC 9899:1990/Cor 1:1994 \\(A C90 első javítása) C ISO/IEC 9899:1990 \\(A C89 ISO szabvány lesz) C ANSI X \\(ANSI C) C Bjarne Stroustrup C nincs hivatalos szabvány - Kernighan & Ritchie C Helló Világ A "Helló Világ!" nevű program forráskódja hello.cpp Printed on 2015/10/08 13:39

3 2015/10/08 13:39 3/33 A C++ nyelv cout << "Helló Világ" << endl; Egy hesmárk (#) azt jelenti preprocessor direktíva következik. Ezek nem általános kódsorok, de a fordító számára megmondják, hogy ezeket a sorokat előre dolgozza fel. A sor azt mondja, hogy a lefordítandó programba fordítsuk bele az iostream állományt is. Az std névtér használata. A C++ függvényei névterekbe vannak csoportosítva. A using namespace std; utasítással azt mondjuk, hogy szeretnénk az std névtérben lévő utasításokat használni. A főfüggvény definíciójának kezdete. Az elején az int, azt jelenti, hogy a program végrehajtás után egy egész számmal tér vissza. cout << "Helló Világ" << endl; A cout egy utasítás, amely a folyamként átadott adatokat a képernyőre visszhangozza. A «karakterek mondják meg, hogy az utána következő adatot a cout vegye át folyamként. Az endl is kiíratásra kerül, amely egy sortörést reprezentál. return 0; A főfüggvény vége. A programot arra utasítja, hogy 0 értékkel térjen vissza. Lehetséges kiterjesztések A forrásállományok kiterjesztése platformonként változhat. A szokásos kiterjesztések:.c,.cc,.cpp,.cxx

4 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv Fejlécállományok a következők lehetnek:.h,.hpp, hxx vagy kiterjesztés nélküli A szabványos C++ könyvtárak kiterjesztés nélküliek. CodeBlocksal telepített MinGW esetén a helyük: c:\program Files\CodeBlocks\MinGW\lib\gcc\mingw32\4.7.1\include\c++\ Egy sor A fenti program a sorait az átláthatóság miatt írtuk több sorba. Egy ilyen program függvény része, leírható akár egyetlen sorként is: cout << "Helló Világ" << endl; A C++ nyelven mindent utasítást pontosvesszővel (;) zárunk. Ez jelöli az utasítás végét, így biztosítva, hogy egy sorba több utasítás is írható. Kivitel Az iostream állományban lévő függvényeket szeretném használni. cout << "karaktersorozat" << endl; A cout a képernyőre írja a paraméterként megadott adatokat. Idézőjelek közzé írjuk a kiírni kívánt karaktersorozatot. Az endl sortörést helyez el a képernyőn. Az endl egy sortörést jelöl. Ha két képernyőre írató utasításom van, és az egyik végén nincs endl akkor ott nem lesz sortörés. Próbáljuk ki a következő programot: egysor.cpp cout << "Helló Világ"; cout << "Egy C++ program vagyok" << endl; Printed on 2015/10/08 13:39

5 2015/10/08 13:39 5/33 A C++ nyelv Escape szekvenciák Escape szekvencia Leírás \' felsővessző (byte 0x27) \ idézőjel (byte 0x22) \\ backslash (byte 0x5c) \0 nul karakter (byte 0x00) \a csengőhang (byte 0x07) \b backspace (byte 0x08) \f lapdobás - form feed (byte 0x0c) \n soremelés - line feed (byte 0x0a) \r kocsi vissza - carriage return (byte 0x0d) \t vízszintes tabulátor (byte 0x09) \v függőleges tabulátor (byte 0x0b) \nnn oktális bájt (nnn) \nn hexadecimális bájt (nn) Változók, adattípusok Alaptípusok Név Leírás Méret* Tartomány* char Karakter vagy kis egész 1byte signed: unsigned: 0 to 255 short int (short) Rövid Egész 2bytes int Egész (integer) 4bytes long int (long) bool Hosszú egész (Long integer) Logikai érték (Boolean) Két értéke lehet: true vagyr false 4bytes 1byte signed: to unsigned: 0 to signed: unsigned: 0 to signed: unsigned: 0 to true vagy false float Lebegőpontos szám (floating) 4bytes +/- 3.4e +/- 38 (~7 számjegy) double long double wchar_t Dupla pontosságú lebegőpontos szám Hosszú dupla pontosságú lebegőpontos szám Széles karakter (wide) A C++11 szabvány bevezet két új típust: char16_t - UTF-16 karakter char32_t - UTF-32 karakter 8bytes 8bytes 2 vagy 4 bytes +/- 1.7e +/- 308 (~15 számjegy) +/- 1.7e +/- 308 (~15 számjegy) 1 wide karakter Módosítók Módosítják a típust. Sorrendjük mindegy. Egy típusdefinícióban csak egyszer szerepelhetnek.

6 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv Előjelváltó signed - előjeles értelmezés (ez az alapértelmezett) unsigned - előjel nélküli értelmezés Méret short - Célja a jó helykihasználás, amely legkevesebb 16 bites szám lesz. long - Cél, hogy legkevesebb 30 bites legyen long long - Cél, hogy legkevesebb 64 bites legyen (Csak C++11 szabvány) Példa unsigned short int szam; A számváltozó 16 bites előjel nélküli szám lesz. long long int szam; A szam változó 8 bájtos lesz. long double szam; A szam változó 12 bájtos lesz. Limitek A climits állományban a típusok maximális és minimális értéke lekérdezhető. Az int egész típus maximális értéke például így kérdezhető le: maxint.cpp #include <climits> cout << INT_MAX << endl; További állandók az alábbi táblázatban találhatók: Printed on 2015/10/08 13:39

7 2015/10/08 13:39 7/33 A C++ nyelv name leírás min. nagyság* CHAR_BIT Egy karakterobjektum bitjeinek száma (byte) 8 SCHAR_MIN Egy signed char objektum minimumértéke -127 SCHAR_MAX Egy signed char objektum maximális értéke 127 UCHAR_MAX Egy unsigned char típusú objektum maximális értéke 255 CHAR_MIN Egy char típusú objektum minimum értéke SCHAR_MIN vagy 0 CHAR_MAX MB_LEN_MAX Egy char típusú objektum maximális értéke A bájtok maximális száma egy több bájtos karakter esetén, helyi (locale) beállításokhoz igazodva SHRT_MIN Egy short int objektum minimális értéke SHRT_MAX Egy short int objektum maximális értéke USHRT_MAX Egy unsigned short int objektum maximális értéke INT_MIN Egy int típusú objektum minimum értéke INT_MAX Egy int típusú objektum maximum értéke UINT_MAX Egy unsigned int objektum maximum értéke SCHAR_MAX vagy UCHAR_MAX LONG_MIN Egy long int objektum minimum értéke LONG_MAX Egy long int maximum értéke ULONG_MAX Egy unsigned long int objektum maximum értéke Típus kasztolás 1 casting [UK: ˈkɑːstɪŋ] [US: ˈkæstɪŋ] esés, hajítás, horgászás, kimustrálás, öntés, öntvény, szereposztás, vetemedés Implicit conversion Az implicit konverzióhoz nem szükséges operátor. Ez automatikusan teljesül, amikor egy értéket adunk. Például: short a=2000; int b; b=a; class A ; class B public: B (A a) ; A a; B b=a; Explicit conversion A C++ erősen típusos nyelv. Néhány típuson explicit konverziót alkalmazhatunk.

8 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv short a=2000; int b; b = (int) a; // c-stílusú kasztolás b = int (a); // függvényszerű jelölés // class type-casting class CDummy float i,j; ; class CAddition int x,y; public: CAddition (int a, int b) x=a; y=b; int result() return x+y; ; int main () CDummy d; CAddition * padd; padd = (CAddition*) &d; cout << padd->result(); Literális állandók int a = 3; double b = 4.5; char c = 'a'; char d = '\n'; string e = "szilva"; Az egyenlőség jel jobb oldalán lévő értékek állandók. Állandók mert a futási időben ezeket nem változtatjuk meg. Mégpedig literális állandók. 255, 0377, 0xff Egészek (decimális, oktális, hex) L, 0x7fffffffl Hosszú, 32-bites egészek 123.0, 1.23e2 dupla pontosságú valós számok 'a', '\141', '\x61' Karakter (literális, oktális, hex) '\n', '\\', '\'', '\"' ÚjSor, visszaperjel, felső vessző, idézőjel "szöveg\n" Karaktertömbök \0 lezárással "helló" "világ" Összefűzött karaktersorozatok Printed on 2015/10/08 13:39

9 2015/10/08 13:39 9/33 A C++ nyelv true, false logikai állandók 1 és 0 int a = 0xff; //Hexadecimális szám megadása cout << a << endl; Nevesített állandó const int max = 5; cout << max << endl; #define MAX 25 cout << MAX << endl; Formázott kivitel Formázott kivitelhez a iomanip fejállományt kell beillesztenünk. Mezőszélesség mezo.cpp #include <iomanip>

10 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv int szam = 28; cout << setw(10) << szam << endl; Kitöltés kitoltes.cpp #include <iomanip> double szam = ; cout << setw(10) << setfill('0') << szam << endl; Precizitás A tizedesek száma lebegőpontos szám esetén: prec.cpp #include <iomanip> double szam = ; //cout << setiosflags(ios::fixed) << setprecision(2) << szam << endl; cout << setprecision(2) << szam << endl; Printed on 2015/10/08 13:39

11 2015/10/08 13:39 11/33 A C++ nyelv Ha fixpontos ábrázolással szeretnénk ábrázolni: prec.cpp #include <iomanip> double szam = ; cout << setiosflags(ios::fixed) << setprecision(2) << szam << endl; Vezető nullák vezetonulla.cpp #include <iomanip> int szam = 58; cout << setfill('0') << setw(10) << szam << endl; Dátum kiíratása: datum.cpp #include <iomanip>

12 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv int ev = 1995; int ho = 1; int nap = 1; cout << setfill('0'); cout << ev << '.' << setw(2) << ho << '.' << setw(2) << nap << endl; Számrendszerek Váltás 10-től eltérő számrendszerbe: valtas.cpp #include <iomanip> int szam = 15; cout << "Oktális szám: " << oct << szam << endl; cout << "Hexadecimális szám: " << hex << szam << endl; Tizedes jegyek száma Valós számok esetén a tizedes jegyek számának meghatározása (két tizedesjegy beállítása): #include <iomanip> double a; Printed on 2015/10/08 13:39

13 2015/10/08 13:39 13/33 A C++ nyelv a = ; cout.precision(2); cout << fixed << a << endl; #include <iomanip> double a; a = ; cout << setprecision(2) << fixed << a << endl; A fixed beállítja, hogy fixpontos számábrázolást használjunk. Matematikai függvények abs() Abszolút érték számítása. p01.cxx #include <cmath> cout << abs(-9) << endl; Trigonometriai függvények cos() Koszinusz sin() Szinusz tan() Tangens acos() Arkusz koszinusz

14 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv Trigonometriai függvények asin() Arkusz szinusz atan() Arkusz tangens atan2() Arkusz tangens két paraméterrel Hiperbolikusz függvények cosh() Hyperbolikusz konszinusz sinh() Hyperbolikusz szinusz tanh() Hyperbolikusz tangens acosh() Arkusz hyperbolikusz koszinusz asinh() Arkusz hyperbolikusz koszinusz atanh() Arkusz hyperbolikusz tangens Exponenciális és logratimikus függvények exp() Exponenciális függvény frexp() Együttható és kitevő lekérdezése ldexp() Érték generálása együtthatóból és kitevőből log() Természetes logaritmus log10() 10-es alapú (általános) logaritmus modf() A tört és egész egész rész számítása exp2() bináris exponenciális számítása expm1() exponenciális minusz 1 ilogb() egész bináris logratimus log1p() logaritmus plusz 1 log2() Bináris logaritmus logb() lebegőpontos alapú logaritmus scalbn() Adott együttható használata lebegőpontosként, adott kitevőn scalebln() Adott együttható használata lebegőpontosként (long) Hatvány függvények pow() adott hatványra emel sqrt() gyökvonás cbrt() köbgyök hypot() derékszögű háromszög átfogója Konstansok M_PI pi értéke Operátorok Értékadó (=) Meghatározzuk egy változó értékét. a = 5; a = b; a = 2 + (b = 5); Printed on 2015/10/08 13:39

15 2015/10/08 13:39 15/33 A C++ nyelv Aritmetikai operátorok ( +, -, *, /, % ) + összeadás - kivonás * szorzás / osztás % maradékképzés a = 11 % 3; Az a értéke 2 lesz. Összetett meghatározások (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, =) kifejezés egyenlő ezzel valtozo += novekmeny; valtozo = valtozo + novekmeny; a -= 5; a = a - 5; a /= b; a = a / b; egysegar *= egyseg + 1; egysegar = egysegar * (egyseg + 1); Inkrementálás és dekrementálás (++, --) A ++ operátor növeli egy változó értékét, a pedig csökkenti eggyel. c++; c+=1; c=c+1; A fenti három utasítások ugyanazt csinálja. Mindegyik növeli a c változó értékét 1-el. Az inkrementáló és dekrementáló utasításokat írhatjuk a változó neve elé és után is. Egy értékadó kifejezés jobboldalán a viselkedésük eltér. Példa 1 Példa 2 B=3; B=3; A=++B; A=B++; // A tartalma 4, B tartalma 4 // A tartalma 3, B tartalma 4 A táblázatban leírt példából láthatjuk, hogy ha a ++ operátor a B előtt van (++B), akkor előbb növeljük a B változó értékét, és csak az után tesszük azt egyenlővé az A változóval. Ha a ++ operátor a B változó után áll, akkor előbb eltároljuk az A változóban a B aktuális értékét, majd utána növelem a B változó értékét 1-el. Összehasonlító operátorok ( ==,!=, >, <, >=, <= ) == egyenlő!= nem egyenlő > nagyobb mint

16 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv < kisebb mint >= nagyobb vagy egyenlő <= kisebb vagy egyenlő (8 == 5) // az értékelés eredmény hamis (false) (5 > 4) // az értékelés eredmény igaz (true) (3!= 2) // az értékelés eredmény igaz (true) (6 >= 6) // az értékelés eredmény igaz (true) (3 < 3) // az értékelés eredmény hamis (false) Logikai operátorok (!, &&, )! operátor!(5 == 5) // értéke false, mert a (5 == 5), és ennek ellenkezőjét kell venni.!(6 <= 4) // értéke true, mert (6 <= 4) kifejezés értéke false!true // értéke false!false // értéke true. && operátor a b a && b true true true true false false false true false false false false operátor a b a b true true true true false true false true true false false false Példák ( (8 == 8) && (2 > 4) ) // értéke false ( true && false ) ( (8 == 8) (2 > 4) ) // értéke true ( true false ) Feltételes operátor (?) feltétel? visszatérési_érték1 : visszatérési_érték2 Printed on 2015/10/08 13:39

17 2015/10/08 13:39 17/33 A C++ nyelv 8==3? 4 : 3 // visszatérési érték 3, mert 8 nem egyenlő 3-al 7==5+2? 4 : 3 // visszatérési érték: 4, since 7 is equal to >3? a : b // visszatér a értékével, mivel 6 nagyobb mint 3 a>b? a : b // visszatér a nagyobbal, a vagy b-vel Vessző operátor (, ) A vesszőoperátor kettő vagy több kifejezés elválasztására való, ott ahol csak egy kifejezés írható. A példa kedvéért egy kód: a = (b=3, b+2); Először a 3 rendelődik a b változóhoz, majd a b-hez 2-őt adunk, amely a végén a váltózóba kerül. A végén így a változó értéke 5 lesz. Bitmódosító operátor ( &,, ^, ~, <<, >> ) operátor asm megfelelő leírás & AND bitenkénti ÉS (AND) OR bitenkénti bezáró VAGY (OR) ^ XOR bitenkénti kizáró VAGY (OR) ~ NOT egyes komplemens (bit invertálás) << SHL balra tolás >> SHR jobbra tolás Nyílt típusmeghatározó operátor Kasztolás néven ismert típusátalakítás. int i; float f = 3.14; i = (int) f; Az f változóban valós szám van, de az (int) kasztoló operátorral, egész típusúvá alakítjuk. sizeof() Ez az operátor egy paramétert fogad, amely egy típus vagy egy változó. Visszatér annak méretével bájtokban megadva. Például: a = sizeof (char);

18 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv Konvertálás stringstream A stringstream a <sstream> fájlban található és szövegalapú objektumok folyamként való kezelését teszi lehetővé. Ezzel könnyen átalakíthatunk karaktersorozatot számmá és vissza. convert1.cpp #include <sstream> cout << "Hi" << endl; string str("384"); int a; stringstream(str) >> a; cout << a << endl; convert2.cpp #include <sstream> string str; float ar; cout << "Ar: "; getline(cin, str); stringstream(str) >> ar; cout << ar << endl; aru.cpp #include <sstream> Printed on 2015/10/08 13:39

19 2015/10/08 13:39 19/33 A C++ nyelv string str; float ar; int mennyiseg; cout << "Ar: "; getline(cin, str); stringstream(str) >> ar; cout << "Mennyiseg: " ; getline(cin, str); stringstream(str) >> mennyiseg; cout << "Fizetendo: " << ar * mennyiseg << endl; atoi #include <cmath> char *str = "123"; int a = atoi(str); cout << a * 2 << endl; Bevitel Egész szám bekérése int a;

20 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv cin >> a; Karakter bekérése A cin segítségével egy karaktert vagy egy karaktersorozatot kérhetünk be a billentyűzetről. karakterbe.cpp char cha, chb; cout << "Karakter: "; cin >> cha; cin.ignore(); cout << "Karakter2: "; cin >> chb; cout << endl << "Első: " << cha << endl; cout << "Második: " << chb << endl; Karaktersorozat esetén whitespace karakter után a karakterek tárolása megszakad. Írhatunk még karaktersorozatokat, de csak a whitespace előtti rész kerül a változóba. Így ezzel az utasítással csak egy szót kérhetünk be. Mi azonban nem mindig ezt szeretnénk. Ha szeretnénk egy egész mondatot bekérni akkor a getline() függvényt használhatjuk. A getline() több módon használható. getline() mondatbe.cpp cout << "Mondat: "; string str; getline(cin, str); cout << str << endl; Printed on 2015/10/08 13:39

21 2015/10/08 13:39 21/33 A C++ nyelv Várakozás egy billentyűnyomásra cin.get(); Egy billentyűnyomást vár. A lenyomott billentyűt el is tárolhatjuk: char a = cin.get(); vagy int a = cin.get(); A lenyomott billentyű egész számként is eltárolható. Ilyenkor az ASCII kódtáblában a billentyűnek megfelelő ASCII kód kerül tárolásra. Vezérlőtevékenységek Egy programkód nem feltétlenül egymás után hajtódik végre. Vannak, amelyek végrehajtását bizonyos feltételhez kötjük. Vannak, amelyeket többször egymás után szeretnék végrehajtani. Vannak olyan utasítások, amelyeket szeretnénk együtt kezelni. Az együtt kezelendő utasításokat blokkokba szervezzük. A blokkokat kapcsos zárójelekkel adjuk meg: utasítás1; utasítás2; utasítás3; Szelekció if Általánosságban a legegyszerűbb if feltételes utasítás a következő módon épül fel: if (feltétel) utasítások Az if után zárójelek között megadjuk a feltételt. A zárójel után megadunk egy utasítást vagy egy utasításblokkot. if (x == 100) cout << "x tartalma 100" ; int a;

22 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv cin << a; if(a < 10) cout << "Kisebb mint 10" << endl; else cout << "Nagyobb vagy egyenlő mint 10" << endl; int a; cin << a; if(a < 10) cout << "Kisebb mint 10"; cout << endl; else cout << "Nagyobb vagy egyenlő mint 10"; cout << endl; switch int a; cin >> a; switch(a) case 3 : cout << "Három" << endl; break; case 5 : cout << "Öt" << endl; break; case 7 : cout << "Hét" << endl; break; program01.cxx int main(int argc, char **argv) char b; cin >> b; switch(b) case 'a': cout << "A betű" << endl; break; case 'b': cout << "B betű" << endl; break; default: cout << "Egyéb" <<endl; Printed on 2015/10/08 13:39

23 2015/10/08 13:39 23/33 A C++ nyelv Iteráció while int a; a = ; while(a < 10) cout << "alma" << endl; a++; for int a; cin >> a; for(a=; a < 10; a++) cout << "alma" << endl; Ha számokat visszafele szeretnénk megkapni, akkor: n-- int main () for (int n=10; n>; n--) cout << n << ", "; cout << "TUZ!\n"; Az előkészítős részben és a növekményes részben megadható több utasítás a vessző operátor segítségével. for ( n=, i=100 ; n!=i ; n++, i-- ) // amit tenni szeretnénk...

24 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv do int i = 1; do cout << "alma" << endl; i++; while (i <= 10); Ugró utasítások break int main () int n; for (n=10; n>; n--) cout << n << ", "; if (n==3) cout << "számlálás leállítása!"; break; 10, 9, 8, 7, 6, 5, 4, 3, számlálás leállítása! continue // continue példa int main () for (int n=10; n>; n--) if (n==5) continue; cout << n << ", "; Printed on 2015/10/08 13:39

25 2015/10/08 13:39 25/33 A C++ nyelv cout << "TUZ!\n"; 10, 9, 8, 7, 6, 4, 3, 2, 1, TUZ! goto // goto példa int main () int n=10; ciklus: cout << n << ", "; n--; if (n>) goto ciklus; cout << "TUZ!\n"; 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, TUZ! Az exit() függvény Az exit() függvény a cstdlib könyvtárban van definiálva. Az exit() függvény megszakítja a program futását és visszaad az operációs rendszernek egy visszatérési értéket. Az exit() fejrésze: void exit (int exitcode); Tömbök Azonos típusok tárolására használt adatszerkezet. Vektor Egydimenziós tömbök, vagyis kiterjedésük egyirányú. Pl:

26 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv A tömbünk egész számokat tartalmaz. De lehet ugyanez valós számokkal Vagy tartalmazhat karaktereket: 'c' 'k' 'e' 'r' 'n' 'p' 'b' int egeszszamok[5]; egeszszamok[] = 35; egeszszamok[1] = 42; egeszszamok[2] = 98; egeszszamok[3] = 22; egeszszamok[4] = 76; Kezdőérték: int egeszszamok[5] = 35, 42, 98, 22, 76; Mátrix int matrix[4][7]; Fájlkezelés Fájlok olvasása, írása #include <fstream> string s; ifstream in("test.dat"); //Megnyitás olvasásra ofstream out("test2.dat"); //Megnyitás írásra Printed on 2015/10/08 13:39

27 2015/10/08 13:39 27/33 A C++ nyelv while(getline(in, s)) cout << s << "n"; //Olvassunk be egy sort //Írjuk egy másik fájlba Fájlok írása másként #include <fstream> main() ofstream f f.open("test.txt"); if(!f.is_open()) cerr << "A fájlt nem sikerült megnyitni" << endl; return; f << "Kiírnivaló" << endl; f.close() fájlok olvasása másként #include <fstream> #include <string> main() ifstream f f.open("test.txt"); if(!f.is_open()) cerr << "A fájlt nem sikerült megnyitni" << endl; return;

28 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv string s; while(!f.eof()) f >> s; cout << s << endl; f.close() fájl nyitás megint #include <fstream> long begin,end; ifstream f ("input.txt"); // GET pointer lekérése begin = f.tellg(); // file végére pozícionálunk f.seekg (, ios::end); end = f.tellg(); myfile.close(); // különbség (fajlméret) kiírása cout << "Méret: " << (end-begin) << " byte.\n"; Tagolt olvasás fájlból olvas.cpp /* Olvasás szóközökkel tagotl fájlból */ #include <fstream> Printed on 2015/10/08 13:39

29 2015/10/08 13:39 29/33 A C++ nyelv ifstream befolyam("adat.txt"); string str; int ar; befolyam >> str; befolyam >> ar; while(befolyam.good()) cout << str << " "; cout << ar << endl; befolyam >> str; befolyam >> ar; Dinamikus változók Ha egy változót mutatóként hoztunk létre és már nincs rá szükségünk, lehetőségünk van a memóriafoglalást megszüntetni, azaz felszabadítani. Ezt a delete utasítással tehetjük meg: using namesapce std; main() int *a; a = new int; *a = 3; cout << *a << endl; delete(a); Tömbök felszabadításakor a delete operátor után mindig használjuk az üres szögletes zárójelpárt ('[]'). Ezáltal a tömb minden elemére lefut a destruktor, felszabadítva a dinamikusan lefoglalt memóriaterületeket is. A szögletes zárójelpár nélkül csak az objektumhoz statikusan tartozó memóriaterület szabadul fel. Ha a zárójelbe a tömb méretétől eltérő szám kerül, akkor vagy nem szabadul fel az összes memória, vagy a destruktor olyan objektumra is meghívódik, ami nem is létezett. Az üres zárójelpár használatával ezek elkerülhetőek.

30 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv Barátok class a (...) friend globalisfuggvenyneve(parm. lista); ; class b (...) friend class osztalynev; ; Véletlen szám #include <ctime> // time() #include <cstdlib> // srand() és rand() srand(time()); int r = (rand() % 10) + 1; // 1 és 10 közötti szám Szövegkezelés Szöveg darabolása #include <string> #include <sstream> main() string szoveg = "szilva:körte:barack"; istringstream szovegfolyam(szoveg); string resz; while(getline(szovegfolyam, resz, ':')) Printed on 2015/10/08 13:39

31 2015/10/08 13:39 31/33 A C++ nyelv cout << resz << endl; #include <string> int main () string line = "rovid vonal a teszteleshez"; // with no arguments string s1; s1 = "András"; cout << "s1: " << s1 << endl; // copy constructor string s2 (s1); cout << "s2: " << s2 << endl; // one argumen string s3 (line); cout << "s3: " << s3 << endl; // first argumen C string // second number of characters string s4 (line,10); cout << "s4: " << s4 << endl; // 1 - C++ string // 2 - start position // 3 - number of characters string s5 (s3,7,5); // copy word 'line' from s3 cout << "s5: " << s5 << endl; // 1 - number characters // 2 - character itself string s6 (15,'*'); cout << "s6: " << s6 << endl; // 1 - start iterator // 2 - end iterator string s7 (s3.begin(),s3.end()-5); cout << "s7: " << s7 << endl; // you can instantiate string with assignment string s8 = "Andras"; cout << "s8: " << s8 << endl;

32 Last update: 2014/12/20 00:49 oktatas:programozás:cpp:cpp_nyelv Darabolás újra: darbolas3.cpp #include <string> #include <sstream> main() std::string gyumolcs("alma:szilva:körte:barack"); std::istringstream iss(gyumolcs); std::string token; while(getline(iss, token, ':')) std::cout << token << std::endl; Makró Egy kódrészlet, amelynek nevet adunk. Amikor használjuk a nevet a makró kódja behelyettesítődik. Kétféle makró van. Leginkább abban különböznek, ahogy használatkor kinéznek. Objektumszerű makró, mint amikor egy objektumot használunk Függvényszerű makró, mint amikor egy függvényt használunk Objektumszerű Definiálása: #define BUFFER_SIZE 1024 Használata: foo = (char *) malloc (BUFFER_SIZE); Egy tömb megadása: #define NUMBERS 1, \ 2, \ 3 int x[] = NUMBERS ; Olyan mintha ezt írtuk volna: Printed on 2015/10/08 13:39

33 2015/10/08 13:39 33/33 A C++ nyelv int x[] = 1, 2, 3 ; Függvényszerű #define lang_init() c_init() Ezek után, ha meghívjuk a következő függvényt: lang_init() akkor valójában ez a függvény hajtódik végre: c_init() From: - SzitWiki Permanent link: Last update: 2014/12/20 00:49

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 programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása A programozás alapjai 1 A C nyelv típusai 4. előadás Híradástechnikai Tanszék C típusok -void - skalár: - aritmetikai: - egész: - eger - karakter - felsorolás - lebegőpontos - mutató - függvény - union

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 II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

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

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

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

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító

Részletesebben

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

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

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

Részletesebben

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

C# gyorstalpaló. Készítette: Major Péter

C# gyorstalpaló. Készítette: Major Péter C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,

Részletesebben

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4. 212. február 28. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? Programtervezési stratégiák Top-down Bottom-up Függvények Szintaxis

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

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

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

Részletesebben

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

A C programozási nyelv I. Bevezetés

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

Részletesebben

A C programozási nyelv I. Bevezetés

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

Részletesebben

LibreOffice Makró Basic

LibreOffice Makró Basic 2017/01/12 13:05 1/11 LibreOffice Makró Basic < Basic LibreOffice LibreOffice Makró Basic Szerző: Sallai András Copyright Sallai András, 2013 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu

Részletesebben

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

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

Részletesebben

Java 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

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

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

Részletesebben

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

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

Bevezetés a programozásba I.

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

Részletesebben

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

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

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. 1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. // változó deklaráció int number1; // első szám int number2; // második szám int sum; // eredmény std::cout

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

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE 2015-16 Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic

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

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C++ programozási nyelvbe Oktatási segédlet Összeállította: Ficsor Lajos 2001. 1. A C++ programozási nyelv története A C++ programozási nyelv

Részletesebben

A C# PROGRAMOZÁSI NYELV

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

Részletesebben

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

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

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 Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök Dr. Bécsi Tamás 4. Előadás A?: operátor Nézzük meg a következő kifejezést: if (a>b) z=a; else z=b; Ez felírható

Részletesebben

Szoftvertechnológia alapjai Java előadások

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

Részletesebben

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command

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

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

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Algoritmusok Tervezése 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Bevezetés A BASIC (Beginner s All-purpose Symbolic Instruction Code) programnyelvet oktatási célokra hozták létre 1964-ben. Az általános

Részletesebben

Készítette: Nagy Tibor István

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

Részletesebben

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

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

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

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

Részletesebben

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

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

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

Részletesebben

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 2. fejezet C++ alapismeretek Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2015. évi Jegyzetpályázatának támogatásával

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

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

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

Részletesebben

C programozás. 1 óra Bevezetés

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

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

9.fejezet: Függvények és külső eljárások

9.fejezet: Függvények és külső eljárások 9.fejezet: Függvények és külső eljárások Úgy érzem, éppen itt az ideje, hogy összeszedjünk mindent, amit az eljárásokról, illetve a függvényekről tudni kell és rendszerezzük!nos, az alapvető eljárás ugye

Részletesebben

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Bevezetés a programozásba. 6. Előadás: C++ bevezető Bevezetés a programozásba 6. Előadás: C++ bevezető ISMÉTLÉS PLanG features Utasítások Értékadás, KI:, BE: Programkonstrukciók Elágazás Ciklus Típusok Egész, valós, logikai, szöveg, karakter, fájl Típuskonstrukciók

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

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló

Részletesebben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Java II. I A Java programozási nyelv alapelemei

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

Részletesebben

Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17.

Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17. Programozás I. 2. előadás C# bevezető Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. szeptember 17. Sergyán (OE NIK) Programozás I. 2012. szeptember

Részletesebben

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

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

Részletesebben

Assembly programozás: 2. gyakorlat

Assembly programozás: 2. gyakorlat Assembly programozás: 2. gyakorlat Számrendszerek: Kettes (bináris) számrendszer: {0, 1} Nyolcas (oktális) számrendszer: {0,..., 7} Tízes (decimális) számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális

Részletesebben

Szoftvertervezés és -fejlesztés I.

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

Részletesebben

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

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 2. előadás Procedurális programozás: adatfolyamok, adatsorok kezelése 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

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

C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat 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/12 Input-output

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

Részletesebben

Python nyelv. Helló Világ. Karakterkódolás. Interpreter. < Python

Python nyelv. Helló Világ. Karakterkódolás. Interpreter. < Python 2016/12/13 11:37 1/17 Python nyelv < Python Python nyelv Szerző: Sallai András Copyright Sallai András, 2011, 2014, 2015 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Helló Világ elso.py

Részletesebben

Python tanfolyam Python bevezető I. rész

Python tanfolyam Python bevezető I. rész Python tanfolyam Python bevezető I. rész Mai tematika Amiről szó lesz (most): Interpretált vs. fordított nyelvek, GC Szintakszis Alaptípusok Control flow: szekvencia, szelekció, iteráció... Függvények

Részletesebben

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód: Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...

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

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

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

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

Részletesebben

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, az Algoritmusok és adatszerkezetek c. tárgyban

Részletesebben

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18 C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi

Részletesebben

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

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

Részletesebben

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C programozási nyelvbe Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Oktatási segédletek a levelező műszaki informatikus hallgatók

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

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

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

Részletesebben

INFORMATIKA tétel 2017

INFORMATIKA tétel 2017 INFORMATIKA tétel 2017 ELMÉLETI TÉTEL: Sorold fel a rekurzív függvények/eljárások jellemzőit! Szemléltesd a fogalmakat egy konkrét példán! [1 pont] GYAKORLATI TÉTEL: 1. Legyen az alábbi pszeudokód programrészlet

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ás I gyakorlat

Programozás I gyakorlat Programozás I. - 2. gyakorlat Változók, típusok, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer - És Számítástudományi Tanszék Utolsó frissítés: September 21, 2009 1 tar@dcs.vein.hu

Részletesebben

INFORMATIKA tétel 2018

INFORMATIKA tétel 2018 INFORMATIKA tétel 2018 ELIGAZÍTÁS: 1 pont hivatalból; Az 1-4 feladatokban (a pszeudokód programrészletekben): (1) a kiír \n utasítás újsorba ugratja a képernyőn a kurzort; (2) a minden i = n,1,-1 végezd

Részletesebben

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

Programozás. C++ típusok, operátorok. Fodor Attila Programozás C++ típusok, operátorok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. március 4. Deklaráció és definíció C++

Részletesebben

1. Alapok. #!/bin/bash

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

Részletesebben

Mutatók és mutató-aritmetika C-ben március 19.

Mutatók és mutató-aritmetika C-ben március 19. Mutatók és mutató-aritmetika C-ben 2018 március 19 Memória a Neumann-architektúrában Neumann-architektúra: a memória egységes a címzéshez a természetes számokat használjuk Ugyanabban a memóriában van:

Részletesebben

Kifejezések. Kozsik Tamás. December 11, 2016

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},

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

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 alapjai gyakorlat. 2. gyakorlat C alapok

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

Részletesebben

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

Kifejezések. Kozsik Tamás. December 11, 2016

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;

Részletesebben

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

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

Részletesebben