C programozási nyelv

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

Download "C programozási nyelv"

Átírás

1 C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15

2 A fordítás menete Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 2 / 15

3 A fordítás menete progc Előfeldolgozó Átmenti állomány Fordító progobj más obj-tek könyvtárak indító kód Linker futtatható kód Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 2 / 15

4 Az fordítás elemei Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

5 Az fordítás elemei előfeldolgozó (precompiler) kiszedi a fordítás számára felesleges elemeneket a forrás állományból és végrehajtja az előfeldolgozó utasításokat Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

6 Az fordítás elemei előfeldolgozó (precompiler) kiszedi a fordítás számára felesleges elemeneket a forrás állományból és végrehajtja az előfeldolgozó utasításokat fordító (compiler) az átmeneti állományból relokálható bináris állományt az un object kódot állitja elő Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

7 Az fordítás elemei előfeldolgozó (precompiler) kiszedi a fordítás számára felesleges elemeneket a forrás állományból és végrehajtja az előfeldolgozó utasításokat fordító (compiler) az átmeneti állományból relokálható bináris állományt az un object kódot állitja elő linker összeszerkeszti az object állományokat, a használt könyvtárakat és az un indítókódot Ezzel futtatható állományt hoz létre Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

8 Az előfeldolgozó utasítások Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

9 Az előfeldolgozó utasítások minden előfeldolgozó utasítás a # karakterrel kezdődik, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

10 Az előfeldolgozó utasítások minden előfeldolgozó utasítás a # karakterrel kezdődik, az előfeldolgozó utasításokat nem zárja le ;, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

11 Az előfeldolgozó utasítások minden előfeldolgozó utasítás a # karakterrel kezdődik, az előfeldolgozó utasításokat nem zárja le ;, az argumentumukat nem tesszük zárójelbe (néhány esetben meg lehet tenni) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

12 #include utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

13 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

14 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

15 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

16 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: #include <stdioh> Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

17 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: és lehet általunk előállított: #include <stdioh> Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

18 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: és lehet általunk előállított: #include <stdioh> #include "enyemh" Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

19 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: és lehet általunk előállított: #include <stdioh> #include "enyemh" Van olyan rendszer, amely különbséget tesz a jelölés szerint Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

20 Mi legyen és mi ne legyen az include fájlban Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

21 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

22 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

23 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

24 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

25 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

26 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Ne legyen benne: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

27 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Ne legyen benne: változó deklaráció, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

28 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Ne legyen benne: változó deklaráció, függvény definíció Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

29 #define utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

30 #define utasítás Szerepe kettős: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

31 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

32 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

33 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

34 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

35 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

36 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

37 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

38 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

39 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben A sort a sorvég karakter zárja Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

40 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben A sort a sorvég karakter zárja Ha nem férünk ki az utolsó mezőnél egy sorban, akkor az utolsó mező \karakterekkel törhető Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

41 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben A sort a sorvég karakter zárja Ha nem férünk ki az utolsó mezőnél egy sorban, akkor az utolsó mező \karakterekkel törhető Pl: #define RNG (a>x && A<X+w && \ b>y && b<y+h) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

42 Fordításidejű konstans definálása Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

43 Fordításidejű konstans definálása Ezt írjuk a forrásba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

44 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

45 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

46 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: a=0; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

47 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: a=0; Miért jó ez nekünk Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

48 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: a=0; Miért jó ez nekünk Mert egyetlen átírással akár több száz helyen is módosíthatunk értéket Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

49 Makró definiálás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

50 Makró definiálás Ezt írjuk a forrásba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

51 Makró definiálás Ezt írjuk a forrásba: #define MAX(a,b) (a>b)?(a),(b) z=max(x,y); Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

52 Makró definiálás Ezt írjuk a forrásba: #define MAX(a,b) (a>b)?(a),(b) z=max(x,y); Ez kerül az előfeldolgozás után az átmeneti állományba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

53 Makró definiálás Ezt írjuk a forrásba: #define MAX(a,b) (a>b)?(a),(b) z=max(x,y); Ez kerül az előfeldolgozás után az átmeneti állományba: z=x>y?x:y; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

54 #undef utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

55 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

56 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, vagy egy az adott szimbólumra vonatkozó #undef utasításig Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

57 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, vagy egy az adott szimbólumra vonatkozó #undef utasításig Példa: #define NULLA 0 Itt érvényes #undef NULLA Itt már nem érvényes Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

58 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, vagy egy az adott szimbólumra vonatkozó #undef utasításig Példa: #define NULLA 0 Itt érvényes #undef NULLA Itt már nem érvényes Az #undef mind a fordítás idejű konstansokra, mind a makrókra alkalmazható Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

59 A feltételes fordítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

60 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

61 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

62 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

63 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

64 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: platfrom független kódot szeretnénk írni, hardver független kódot szeretnénk írni, mást szeretnénk a fejlesztési verzióban, mint az éles futó programban, stb Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

65 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: platfrom független kódot szeretnénk írni, hardver független kódot szeretnénk írni, mást szeretnénk a fejlesztési verzióban, mint az éles futó programban, stb A feltételes fordítás vezérlésére szolgálnak a következő utasítások: #if, #else, #elif, #ifdef, #ifndef, #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

66 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: platfrom független kódot szeretnénk írni, hardver független kódot szeretnénk írni, mást szeretnénk a fejlesztési verzióban, mint az éles futó programban, stb A feltételes fordítás vezérlésére szolgálnak a következő utasítások: #if, #else, #elif, #ifdef, #ifndef, #endif Figyelem mindent feltételes fordítási blokkot #endif utasítás zár le!! Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

67 #if, #else, #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

68 #if, #else, #endif #if kifejezés Feltételes blokk #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

69 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

70 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

71 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) #if kifejezés Feltételes blokk1 #elsẹ Feltételes blokk2 #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

72 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) #if kifejezés Feltételes blokk1 #elsẹ Feltételes blokk2 #endif Ha a kifejezés igaz a Feltételes blokk1 fordításra kerül Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

73 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) #if kifejezés Feltételes blokk1 #elsẹ Feltételes blokk2 #endif Ha a kifejezés igaz a Feltételes blokk1 fordításra kerül Ha a kifejezés hamis a Feltételes blokk2 kerül fordításra Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

74 #elif utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 13 / 15

75 #elif utasítás Ez tualjdonképpen egy #else #if tehát egyedül nem használható Előnye, hogy egy hosszú - többszörös elágazást lehet csinálni a segítségével egy darab #endif-el Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 13 / 15

76 #elif utasítás Ez tualjdonképpen egy #else #if tehát egyedül nem használható Előnye, hogy egy hosszú - többszörös elágazást lehet csinálni a segítségével egy darab #endif-el #if kif1 #elif kif2 #elif kif3 #elif kif4 #elif kifn #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 13 / 15

77 #elif utasítás Ez tualjdonképpen egy #else #if tehát egyedül nem használható Előnye, hogy egy hosszú - többszörös elágazást lehet csinálni a segítségével egy darab #endif-el #if kif1 #elif kif2 #elif kif3 #elif kif4 #elif kifn #endif Megjegyzés: Dr Schuster György az () ennyirec programozási bonyolult nyelv feltételes Előfeldolgozófordítás utasítások ritka 2011 május 3 13 / 15

78 #ifdef és #ifndef utasítások Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

79 #ifdef és #ifndef utasítások Az #ifdef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS definiálásra került Teljesen mindegy, hogy milyen értékkel Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

80 #ifdef és #ifndef utasítások Az #ifdef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS definiálásra került Teljesen mindegy, hogy milyen értékkel Az #ifndef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS nem került definiálásra Tipikus felhasználása header állományokban, pl: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

81 #ifdef és #ifndef utasítások Az #ifdef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS definiálásra került Teljesen mindegy, hogy milyen értékkel Az #ifndef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS nem került definiálásra Tipikus felhasználása header állományokban, pl: #ifndef char 95NEVHEADER #define char 95NEVHEADER 0 a header fájl érdemi része #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

82 #pragma, #warning utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

83 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

84 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

85 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

86 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során A ## utasítás (inkább operátor) szövegrészletek összefűzését végzi Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

87 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során A ## utasítás (inkább operátor) szövegrészletek összefűzését végzi Pl: a forrásban value##a=5; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

88 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során A ## utasítás (inkább operátor) szövegrészletek összefűzését végzi Pl: a forrásban value##a=5; a befordított kódban valuea=5; Nagyon hasznos programgenerátor írásánál Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

Dr. Schuster György október 14.

Dr. Schuster György október 14. Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó

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

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

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

Programozás II. 2. Dr. Iványi Péter

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

Részletesebben

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

Programozás 6. Dr. Iványi Péter Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak

Részletesebben

C programozási nyelv. Dr. Schuster György. 2014. szeptember 18.

C programozási nyelv. Dr. Schuster György. 2014. szeptember 18. C programozási nyelv munkapéldány Dr. Schuster György 2014. szeptember 18. 1 Tartalomjegyzék 1. Bevezetés 6 2. Szintaktikai elemek 7 2.1. Kommentek......................................... 7 2.2. Változók...........................................

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

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

Bevezetés a programozásba Előadás: Fordítási egység

Bevezetés a programozásba Előadás: Fordítási egység Bevezetés a programozásba 2 5. Előadás: Fordítási egység ISMÉTLÉS Tagfüggvény kiemelése struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; void Particle::rajzol() { gout

Részletesebben

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

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

Részletesebben

Forráskód formázási szabályok

Forráskód formázási szabályok Forráskód formázási szabályok Írta: Halmai Csongor, Webcenter Bt. A php és html kódrészletek Ugyanazon fájlon belül nem szerepelhet php kód és html tartalom. E kettő különválasztására smarty-t vagy más

Részletesebben

A C programozási nyelv I. Bevezetés

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

Részletesebben

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

Fordítóprogramok. Aszalós László. 2009. szeptember 7.

Fordítóprogramok. Aszalós László. 2009. szeptember 7. Fordítóprogramok Aszalós László 2009. szeptember 7. 1. Bemelegítés Honlap: www.inf.unideb.hu/ aszalos/diak.html (Fordítóprogramok, 2009) Jegymegajánló: utolsó hét előadásán. PótZH (csak gyakorlat) vizsgaidőszak

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

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Cekla. Készítette Doxygen Tue Sep :13:44

Cekla. Készítette Doxygen Tue Sep :13:44 Cekla Készítette Doxygen 1.7.1 Tue Sep 20 2011 14:13:44 TARTALOMJEGYZÉK 1 Tartalomjegyzék 1. Cekla C++ könyvtár deklaratív C++-hoz 1 2. Modulmutató 1 2.1. Modulok............................................

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

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

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

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

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

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás Paraméter másutt is előfordulhat a makró törzsben, nemcsak az operandus részen, pl.: PL macro p1,p2 mov ax,p1 P2 p1 PL mov INC Adat, INC ax,adat Adat A &, %,! karakterek továbbá a és ;; speciális szerepet

Részletesebben

Óbudai Egyetem. C programozási nyelv

Óbudai Egyetem. C programozási nyelv Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv II. Dr. Schuster György 2016. március 12. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C2016. programozási március 12. nyelv Utasításo

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

C programozási nyelv

C programozási nyelv C programozási nyelv Struktúrák Dr Schuster György 2011 június 16 Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 1 / 11 Struktúrák Struktúrák A struktúra egy olyan összetett adatszerkezet,

Részletesebben

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba Előadás: A const Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout

Részletesebben

2017/01/27 08:59 1/6 Gettext Rendszer

2017/01/27 08:59 1/6 Gettext Rendszer 2017/01/27 08:59 1/6 Gettext Rendszer < Linux Gettext Rendszer A gettext rendszer a programok nemzetközivé tételét valósítják meg. A programozónak a programot egy nyelven kell megírnia, a gettext rendszer

Részletesebben

El feldolgozó. Programozás I. Hatwágner F. Miklós október 16. Széchenyi István Egyetem, Gy r

El feldolgozó. Programozás I. Hatwágner F. Miklós október 16. Széchenyi István Egyetem, Gy r Programozás I. Széchenyi István Egyetem, Gy r 2013. október 16. feladatai Emlékeztet : forrásfájl (el feldolgozó fordító) kapcsoló-szerkeszt futtatható állomány tevékenységei: kifejti a makrókat (dene)

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

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

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

Óbudai Egyetem. C programozási nyelv

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

Részletesebben

Kiszolgálók üzemeltetése. Iványi Péter

Kiszolgálók üzemeltetése. Iványi Péter Kiszolgálók üzemeltetése Iványi Péter Linuxon a C fordító gcc Fordítás GNU Compiler Collection C, C++, Object-C, Java, Fortran, Ada nyelveket tud kezelni 42 féle rendszerre és processzorra tud kódot generálni

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type osztály... szegmens sz_név ENDS sz_név a szegmens (szelet) neve. A fordító az azonos nevű szegmens szeleteket úgy tekinti, mintha folyamatosan,

Részletesebben

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >> I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >

Részletesebben

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

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

Részletesebben

Programozás C++ -ban

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

Részletesebben

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

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

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

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere 2012. április 10. 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ó? alaki szabályok használata - mintapélda használata - mintapélda

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

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

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include Programozás alapjai C nyelv 11. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.28. -1- Preprocesszor A forrás szöveges előfeldolgozását

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

Az AVR programozás alapjai. Előadja: Both Tamás

Az AVR programozás alapjai. Előadja: Both Tamás Az AVR programozás alapjai Előadja: Both Tamás Fordító C nyelven programozunk Ehhez az AVR-GCC fordító áll rendelkezésre Ennek használatához a WinAVR-t kell telepíteni Teljes értékű C fordító, minden megengedett,

Részletesebben

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1 Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó

Részletesebben

Flex tutorial. Dévai Gergely

Flex tutorial. Dévai Gergely Flex tutorial Dévai Gergely A Flex (Fast Lexical Analyser) egy lexikáliselemz -generátor: reguláris kifejezések sorozatából egy C/C++ programot generál, ami szövegfájlokat képes lexikai elemek sorozatára

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

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

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

Részletesebben

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

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

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

Haladó DBMS ismeretek 1

Haladó DBMS ismeretek 1 Haladó DBMS ismeretek 1 Hasznos információk A tantárgy weboldala: it.inf.unideb.hu/honlap/halado_oracle1 Oracle Junior képzés Gyakorlatok és a neptun Gyakorlat követelmények Ajánlott irodalom Juhász István

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

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más

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

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

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

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

BUJDOSO GYÖNGYI FAZEKAS ATTILA // / / KEZDOLEPESEK TERTIA KIADÓ

BUJDOSO GYÖNGYI FAZEKAS ATTILA // / / KEZDOLEPESEK TERTIA KIADÓ BUJDOSO GYÖNGYI FAZEKAS ATTILA // / / KEZDOLEPESEK TERTIA KIADÓ Tartalomjegyzék Előszó 13 1. A plaintex 19 Bevezető 21 1. Alapvető tudnivalók 23 1.1. A TgK használata vázlatosan 23 1.2. Betűk és jelek

Részletesebben

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek. Linux fájlrendszerek. 4. Laborgyakorlat Előző gyakorlaton, már volt szó a fájlrendszerekről, mikor a mount parancs -t kapcsolójáról volt szó. Linux alatt, az egyes fájlokhoz való hozzáférések miatt, a

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

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

3Sz-s Kft. Tisztelt Felhasználó!

3Sz-s Kft. Tisztelt Felhasználó! 3Sz-s Kft. 1158 Budapest, Jánoshida utca 15. Tel: (06-1) 416-1835 / Fax: (06-1) 419-9914 E-mail: zk@3szs. hu / Web: http://www. 3szs. hu Tisztelt Felhasználó! Köszönjük, hogy telepíti az AUTODATA 2007

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

A Code::Blocks fejlesztőkörnyezet

A Code::Blocks fejlesztőkörnyezet A Code::Blocks fejlesztőkörnyezet A Code::Blocks egy keretrendszer, amely sokféle platformon (Windows, Mac, Linux), elsősorban C/C++ programozási nyelvekhez biztosít kényelmes programfejlesztési környezetet.

Részletesebben

Programozási Nyelvek (C++) Gyakorlat

Programozási Nyelvek (C++) Gyakorlat Programozási Nyelvek (C++) Gyakorlat Gyak 01. Török Márk tmark@caesar.elte.hu D-2.620 1 Tartalom Hello Világ! Fordítás, futtatás, debuggolás Interpretált vs bájtkód Névtér printf vs cout Fejállományok

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

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

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3) Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index

Részletesebben

3 A C programozási nyelv szintaktikai egységei

3 A C programozási nyelv szintaktikai egységei 3 A C programozási nyelv szintaktikai egységei 3.1 Azonosítók Betűk és számjegyek sorozata, betűvel vagy _ (aláhúzás) karakterrel kell kezdődnie. A nagy- és kisbetűk különbözőek. Az azonosítók tetszőleges

Részletesebben

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

Python bevezető foglalkozás Python bevezető foglalkozás

Python bevezető foglalkozás Python bevezető foglalkozás Python bevezető foglalkozás program, programozás, programnyelvek a Python nyelv és az IDLE környezet változók és adattípusok konzol input és output (input(), print()) vezérlési szerkezetek (if/else, while)

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

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

1. Gyakorlat. Rövid elméleti összefoglaló. 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

Regionális forduló november 19.

Regionális forduló november 19. Regionális forduló 2016. november 19. 9-10. osztályosok feladata Feladat Írjatok Markdown HTML konvertert! A markdown egy nagyon népszerű, nyílt forráskódú projektekben gyakran használt, jól olvasható

Részletesebben

Szelekció. Döntéshozatal

Szelekció. Döntéshozatal Szelekció Döntéshozatal Elágazásos algoritmus-szerkezet Eddig az ún. szekvenciális (lineáris) algoritmust alkalmaztunk a parancsok egyenként egymás után hajtüdnak végre. Bizonyos esetekben egy adott feltételtől

Részletesebben

Fordítás Kódoptimalizálás

Fordítás Kódoptimalizálás Fordítás Kódoptimalizálás Kód visszafejtés. Izsó Tamás 2016. október 20. Izsó Tamás Fordítás Kódoptimalizálás / 1 Aktív változók Angol irodalomban a Live Variables kifejezést használják, míg az azt felhasználó

Részletesebben

A C programozási nyelv VI. Parancssori argumentumok File kezelés

A C programozási nyelv VI. Parancssori argumentumok File kezelés A C programozási nyelv VI. Parancssori argumentumok File kezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv VI. (Parancssori argumentum, file kezelés) CBEV6 / 1 Parancssori

Részletesebben

Microsoft Excel 2010

Microsoft Excel 2010 Microsoft Excel 2010 Milyen feladatok végrehajtására használatosak a táblázatkezelők? Táblázatok létrehozására, és azok formai kialakítására A táblázat adatainak kiértékelésére Diagramok készítésére Adatbázisok,

Részletesebben

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei Strukturált C-Strukturált Egyéb elemek Strukturált C-Strukturált Egyéb elemek Adminisztrációs feladatok Strukturált programok A C programnyelv elemei A programozás alapjai. álózati Rendszerek és Szolgáltatások

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

Táblázatkezelés 2. előadás. Alapok (folyt.)

Táblázatkezelés 2. előadás. Alapok (folyt.) Táblázatkezelés 2. előadás Alapok (folyt.) Kallós Gábor kallos@sze.hu Pusztai Pál pusztai@sze.hu Tartalom Képletek használata Kifejezések, operátorok, függvények, típuskonverziók A képletekre vonatkozó

Részletesebben

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.

Részletesebben