/* 2011.11.30 ZH B csoport megoldasa: 1. a., 1. pelda: !o -o +o ++o o++ --o o-- &o *o (tipus)o sizeof o 2. pelda: o=o o+=o o-=o o*=o o/=o o%=o o jelentese operandus b., A C t\pusos nyelv az operandusoknak meghatarozott tipusuk van. A kifejezesek kiertekelesekor (ide ertve a parameteratadast is) fontos, hogy az ertekek megfelelo tipusuak legyenek. pelda: int a=1; int b=2; float c; c = (float)a/b; //int tipusu erteket float tipusura konvertal c erteke 0.5 lesz konverzio nelkul c eredmenye 0.0 lenne c., vekt[7] mutatos alakja *(vekt+7) igaz erteku kifejezes vekt == &vekt[0] a vektor neve a nulladik vektorelemre mutat d. ! logikai tagadas a !a 0 1 1 0 && logikai es a b a&&b 0 0 0 0 1 0 1 0 0 1 1 1 || logikai vagy a b a||b 0 0 0 0 1 1 1 0 1 1 1 1 relacios operatorok < <= > >= == != e., i++ postfix alak ++i prefix alak 0sszetett kifejezesben hasznalva erezheto a kulonbseg i++ hasznalatakor eloszor az i eredeti ertekevel szamitja a teljes kifejezest, majd noveli i erteket 1-el ++i hsznalatakor eloszor noveli i erteket 1-el, majd a novelt uj ertekkel szamitja a teljes kifejezest pelda1: i=2; v=3; v=i++; //atirhato v=i; i=i+1; alakra //v erteke 2 //i erteke 3 pelda2: i=2; v=3; v=++i; //atirhato i=i+1; v=i; alakra //v erteke 3 //i erteke 3 f., break; utasitas hatasara az utasitast kozvetlenul tartalmazo switch befejezi a mukodeset (kilep a switch-bol). 2. a., 5%9/2 eloszor 5%9 maradek kepzes eredmenye 5, majd 5/2 egesz erteku osztas egyenlo 2, vegeredmeny: 2 b., (7+3, 7*4) lista (10,28) a lista vegeredmenye: 28 c., (g=k=7, k%=2) lista (7, 1) hatasa k=7 majd g=7 vegul k=7%2 maradekkepzes miatt k=1 es a lista vegeredmenye: 1 d., A=3; B=13; C=6; D=1; ( A>=B ||!(C=13 || !(6<1)) vegeredmeny: igaz hamis hamis igaz igaz e., i=13; k=2; v1=4; v1 *= ++i * k--; felbontas utan: ++i; v1 = v1 * (i * k); k--; eredmenyek: i=14; v1=112; k=1; */ //3., /* #include #include void main(void) { int i, n; //egesz double szam, osszeg; //valos clrscr(); //kepernyotorles printf("\n Valos szamok szamtani atlaganak szamitasa."); printf("\n Adja meg az egesz szamokat:"); n=17; //a 17-et a ZH feladat irja elo, celszeru kisebb szammal tesztelni for(i=1, osszeg=0; i<=n; i++) //pontosan n-szer fut le { printf("\n Kerem a %d. valos szamot:", i); //bekeres scanf("%lf", &szam); //beolvasas, celkent memoria cimet kell megadni! osszeg+=szam; } printf("\n A szamok szamtani atlaga: %lf", osszeg/n); printf("\n Vege. Billentyu lenyomasra kilep."); getch(); //billentyu lenyomasaig varakozik } //main fuggveny torzsenek a vege */ //4., /* #include #include #define DARAB 150 void main(void) { char szoveg[DARAB]; int i; clrscr(); printf("\n Pelda program zh f4-re"); printf("\n Kerek egy karaktersorozatot:\n"); gets(szoveg); //vektor neve konstans pointer igy kulon nem kell & i=0; while ( szoveg[i]!='\0') i++; //karakterek szamlalasa a lezaro karakterig printf("\n A szovegben %d karakter szerepelt.", i); getch(); } */ //5., #include #include #define DARAB 100 //makro void main(void) { int a[DARAB], b[DARAB], c[DARAB]; int i, n, t; long int osszeg; clrscr(); printf("\n ZH 5. feldat pelda"); printf("\n Kerem az adatharmasok darabszamat:"); scanf("%d", &n); //darabszam for (i=0; i