370 likes | 571 Views
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
E N D
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 – a-b, az eredmény a-ba kerül • a*=b – a*b, az eredmény a-ba kerül • 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: • #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: • int a; • a=sqrt(25); • Helyes: • int a; • 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: • switch (kifejezés) { • Case „érték”: { } • Case „érték”: { } • Default: {break; } • } • break; - kilépés az utasításból
C nyelv utasításai • Pl: • 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: • 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){ • int b; • b=c*c; • return b; • }
Függvények • Típusnélküli függvények: • void kiir(); • main(){ • kiir(); • } • void kiir(){ • printf(„HELLO”); • }