Készítette: Csíki Gyula C programnyelv Készítette: Csíki Gyula
C nyelv felépítése A programnyelv struktúrája: Könyvtári függvények beépítése: #include <stdio.h> - printf() függvény conio.h – getch() függvény stdlib.h – exit(-1) függvény string.h – stringkezelő függvények Függvények definiálása Főfüggvény (főprogram): main() { }
C nyelv felépítése Legegyszerűbb C program: #include <stdio.h> main() { printf(„Hello World!\n”); return 0; } A sor végén található \n új sorba viszi a kurzort.
C nyelv felépítése Egész szám kiíratása: printf(„A szám: %d\n”,2000); A %d egy formátumelem, mely megadja, hogy egész szám kiíratása történik.
C nyelv felépítése Két szám összegének kiíratása: printf(„Két szám összege: %d+%d=%d\n”,5,7,5+7); Két formátumelemmel megadjuk a két szám típusát, és az egyenlőségjel után az eredmény típusát.
C nyelv felépítése Változók deklarációja: int a,b; - két egész szám típusú változó
C nyelv felépítése Azonosítók: valamilyen névvel el kell érnünk az egyes elemeket. Legtöbb fordító a 32 karaktert támogatja Első karakter betű vagy _ jel, a többi betű,szám és _ jel lehet Kis és nagybetűk között KÜLÖNBSÉG van
C nyelv felépítése Változó típusok: short int – 2 bájtos egész long int – 4 bájtos egész unsigned, signed – előjel nélküli, előjeles double – valós szám (8 bájt) long double – valós szám (10 bájt) float – valós szám (4 bájt) char – karakter (1 bájt)
C nyelv felépítése Operátorok: = értékadás == logikai egyenlő != nem egyenlő >,<,>=,<= - nagyobb, kisebb .. && - logikai és kapcsolat || - logikai vagy kapcsolat ! – tagadás
C nyelv felépítése Operátorok: a+=b – a+b, az eredmény a-ba kerül a%=b, maradékképzés, az eredmény a-ba kerül
C nyelv felépítése Formátumelemek: %d – egész típus %c – karaktertípus %s - string
C nyelv felépítése Adatbevitel: int a,b,c; printf(„Két szám:”); scanf(„%d,%d”,&a,&b); c=a+b; printf(„Az összeg: %d+%d=%d\n”,a,b,c); getch() – billentyű lenyomás
C nyelv felépítése Konstansok: Vagy #define EGY 1; #define KETTO 2; int a; a=EGY+KETTO; Vagy const int a=2;
C nyelv felépítése Típuskonverziók: Hibás: Helyes: int a; a=sqrt(25); a=sqrt((double)25);
C nyelv utasításai if utasítás switch utasítás while utasítás do – while utasítás for utasítás
C nyelv utasításai Egyágú elágazás: if (feltétel) { utasítások; } {} – kezdő és végpont Pl: if (a>b) { c=a; z=b; }
C nyelv utasításai Kétágú elágazás: if (feltétel) { utasítások; } else {utasítások;} Pl: if (a>b) { c=a; z=b; } else { c=b; z=a; }
C nyelv utasításai Többágú elágazás: if (feltétel) { utasítások; } else if (feltétel) {utasítások;} Pl: if (a>b) { c=a; z=b; } else if (b>a) { c=b; z=a; }
C nyelv utasításai Egymásba ágyazott elágazás: if (feltétel) { if (feltétel) {utasítások; } } else {utasítások;} Pl: if (a>b) { if (p>k) {c=a; z=b;} } else { c=b; z=a; }
C nyelv utasításai Esetszétválasztás: break; - kilépés az utasításból switch (kifejezés) { Case „érték”: { } Default: {break; } } break; - kilépés az utasításból
C nyelv utasításai Pl: getchar() - karakterbevitel char valasz; valasz=getchar(); switch(valasz) { case ‘i’: { a=b; break;} case ‘n’: {c=b; break;} default: { b=a; } getchar() - karakterbevitel
C nyelv utasításai Nővekményes ciklus: for (;;){ utasítások }; Pl: For (int a=0;a<=10;a++) { printf(„%d\n”,a); } - Növekvő sorrendbe kiírja a számokat
C nyelv utasításai Előltesztelő ciklus: ugyanaz a példa! Pl: While (a<=10) { Printf(„%d\n”,a); a++; }
C nyelv utasításai Hátultesztelő ciklus: ugyanaz a példa! Pl: do { Printf(„%d\n”,a); a++; } while (a>=10);
Tömbök Egydimenziós tömbök: Memóriaterület lekérdezése: sizeof(); int a[5]; a[0]=1; a[1]=2; Memóriaterület lekérdezése: sizeof(); int n=sizeof(a);
Tömbök Kezdeti érték megadása: int a[5]={2,5,7,4,7};
Sztringek Sztring típus nincs, ez is csak egy tömb char s[10]=KUTYA; vagy Char s[10]={‘K’,’U’,’T’,’Y’,’A’,’\0’}; A \0 jelzi a string végét
Sztringek Sztring műveletek: String beolvasás – scanf, gets String kiiratás – printf, puts Értékadás – strcpy Hozzáfűzés – strcat String hossza – strlen String összehasonlítás – strcmp Ezek a függvények a string.h modulban helyezkednek el!
Többdimenziós tömbök int matrix[2,2]={ {3,5,1},{3,7,8},{8,7,5} };
Függvények Függvények deklarációja int negyzet(int a) int b; { b=a*a; return b; }
Függvények Függvények deklarációja: Amennyiben így hozzuk létre a függvényt: int negyzet(a), ebben az esetben meg kell adni a paraméter típusát is, ellenkező esetben int típusú lesz: Int negyzet(a) int a { ….. }
Függvények Függvények prototípusa: Teljes leírását tartalmazza a függvénynek. A függvény deklarációja előtt kell létrehoznunk. int negyzet(); - függvény deklarációja int negyzet(int); - prototípus int negyzet(int a) { …. } (függvény definiálása) b=negyzet(5); - függvényhívás
Függvények Pl: int negyzet(int); /*prototípus */ main(){ int b; b=negyzet(5); } int negyzet(int c){ b=c*c; return b;
Függvények Típusnélküli függvények: void kiir(); main(){ kiir(); } printf(„HELLO”);