Ha kell lehet konzultacio jovo heten hetfon. Kis ZH? Az CASE utasitas (esetkivalasztasos szelekvio): =============================================== c szintaktika: switch (valt){ ert1 : parancs_ha_ert1; break; ert2 : parancs_ha_ert2; break; ... ertn : parancs_ha_ertn; break; default: parancs_kul; break; } Feladat: Irjunk egy fuggvenyt mely egy egesz szamot kap parameterul, es kiirja a szamnak megfelelo erdemjegyet betuvel. /****************************************************************************** Esetkivalasztas: -egy fuggveny, amely a beadott szamjegyre kiirja a szoveges erteket ******************************************************************************/ #include void print_note(int note){ switch (note){ case 1: printf("elegtelen"); break; case 2: printf("elegseges"); break; case 3: printf("kozepes"); break; case 4: printf("jo"); break; case 5: printf("jeles"); break; default : printf("ervenytelen erdemjegy");break; } } int main(){ int note; printf("Kerem adja meg az erdemjegyet:"); scanf("%d", ¬e); print_note(note); printf("\n"); return 0; } Tipusdefinicio: =============== c szintaktika: typedef tipus uj_tipus; pl: typedef int egesz; Rekord tipus definicio: ======================= c szintaktika: typedef struct nev{ tip1: nev1; tip2: nev2; ... tipn: nevn; }nev; a rekord mezoire hivatkozas . segitsegevel ha statikus, -> segitsegevel ha dinamikus a valtozo. pl: typedef struct Szemely{ char *vezetek_nev; char *Kereszt_nev; int szuletesi_ev; }Szemely; ... Szemely Laci; Laci.szuletesi_ev=1934; Feladat: definialjunk egy koord nevu tipust ami egy egesz szam, egy pont_2d-t, amely egy pont 2d-ben es egy haromszog nevu tipust, amely 3 pontot tartalmaz. /************************************* tipusdeklaracio, rekordok *************************************/ #include typedef int koord; typedef struct pont_2d{ koord x, y; }pont_2d; typedef struct haromszog{ pont_2d a, b, c; }haromszog; int main(){ haromszog tri; tri.a.x=1; tri.a.y=2; tri.b.x=3; tri.b.y=4; tri.c.x=0; tri.c.y=0; return 0; } Dinamikus memoriakezeles: ========================= malloc.h vagy stdlib.h headerekben memoria lefoglalasa: -------------------- void * malloc(size); A parancs lefoglal size db byte-ot, visszater a lefoglalt memoriara mutatao pointerrel. memoria felszabaditasa: ----------------------- void free(void *); A parameterben megadott pointernek lefoglalt memoriat szabaditja fel. valtozo meretenek lekerese -------------------------- sizeof parancs Feladat: Irjunk programot mely beker egy szamot, lefoglal ekkora nagysagu valos vektort es feltolti ertekekkel, majd kiiratja. /************************************************ dinamikus helyfoglalas ************************************************/ #include #include int main(){ double *vector; int i; int size; printf("Irja be mekkora tombot kell lefoglalni: "); scanf("%d", &size); vector=(double *)malloc(size*sizeof(double)); for (i=0; i