/* 2011.11.29 ZH A csoport megoldasa: 1. a., typedef int vektortipus[4]; b., a p egy mutato, olyan valtozo amely felveheti egy int tipusu valtozo memoriacimet erteke megvaltoztathato a v egy vektor neve, ezaltal egy konstans pointer amely mindig a 0. elem kezdocimet mutatja erteke nem valtoztathato meg c., A k valtozo erteke 7 lesz, es a kifejezes eredmenye is 7. A felteteles operator logikai kifejezese igaz, mert 7 nem egyenlo 2-vel, vegrahajtja a ? es : kozotti reszt, amely 7 erteket ad eredmenyul mert a valtozo erteke 7. d. switch( v ) { case 1: printf("egy"); break; case 2: printf("ketto"); break; case 3: printf("harom"); break; default: printf("nem ertelmezett valasztas"); } A switch tobbiranyu programelagazast valosit meg. A v ertekenek megfelelo case agon lep be, ha nincs v-nek megfelelo konstans a case agakban, akkor keresi a default cimket es ott lep be, ha nincs default akkor nem lep be. Belepes utan vegrahajtja az utasitasokat egymas utan sorban a vegeig vagy egy break; utasitasig. i=1; o=0; while(i<=10) { o+=i; i++; } Ha a while ciklus mindaddig fut amig a feltetel kifejezes igaz logikai erteket ad. Ha a feltetel hamis logikai erteket ad atlepi a ciklus magot, befejezi az ismetlest. Egytol tizig osseadja az egesz szamokat egymas utan. e., tomor, hatekony, altalanos celu, magasszintu programozasi nyelv, kivaloan alkalmas gyors, hordozhato kod irasara f., i = 1; k = 0; do { printf("\n Kerem a %d. erteket:", i); scanf("%f", &v); if ( v < 0 ) continue; k+=v; i++; }while(i<=10); A continue; utasitas hatasara a vezerles atkerul a ciklusmag vegere, a program a while utan megadott felteteles kifejezes kiertekelesevel folytatodik. A peldaprogram ciklusban osszead pontosan 10 nem megativ szamot, a negativ szamokat nem veszi figyelembe. 2. a., 7-11%2 eloszor 11%2 maradek kepzes eredmenye 1, majd 7-1 egyenlo 6, vegeredmeny: 6 b., (5+5,4*7) lista (10,28) eredmenye: 28 c., (g=k=9,g+=3) lista (9, 12) hatasa k=9 es g=9, majd g=9+3, igy g=12 es a lista vegeredmenye: 12 d., A=13; B=3; C=6; D=11; ( A>=B || !(C>D)) ( 13>=3 || !(6<11)) vegeredmeny: igaz hamis igaz igaz igaz e., i=5; k=4; v1=3; v1 *= ++i * k--; felbontas utan: ++i; v1 = v1 * (i * k); k--; eredmenyek: i=6; v1=72; k=3; */ //3., /* #include #include void main(void) { float szam, min; //valos int i, n; //egesz clrscr(); //kepernyotorles printf("\n Legkisebb szam kivalasztasa."); printf("\n Adja meg az valos szamokat:"); n=142; //a 142-t a ZH feladat irja elo, celszeru kisebb szammal tesztelni for(i=1; i<=n; i++) //pontosan n-szer fut le { printf("\n Kerem a %d. valos szamot:", i); //bekeres scanf("%f", &szam); //beolvasas, celkent memoria cimet kell megadni! if (i==1) min = szam; //elso szam megadasakor az a legkisebb else //ha nem az elso szamot adjak meg akkor if (min>szam) min = szam; //ha kisebbet adtak meg mint az addigi legkisebb azt jegyzi meg } printf("\n A legkisebb szam: %f", min); //eredmeny kiirasa a kepernyore getch(); //billentyu lenyomasaig varakozik } //main fuggveny torzsenek a vege */ //4., /* #include #include void main(void) { int ferfi[100], no[100]; //ket vektor egesz szamok tarolasara int i, n, t; clrscr(); //kepernyotorles printf("\n Hazasparok eletkoranak vizsgalata."); printf("\n Adja meg a hazasparok darabszamat (max 100):"); //helyfoglalas miatt a vektor elemeinek a szama kotott scanf("%d", &n); for(i=0; iferfi[i] ) t++; //noveli a t erteket 1-el, ezzel szamlalja a talalatokat printf("\n %d hazaspar eseteben volt idosebb a feleseg a ferjnel", t); //eredmeny kiirasa a kepernyore getch(); //billentyu lenyomasaig varakozik } //main fuggveny torzsenek a vege // FIGYELEM! A gyakorlaton hasznalt BorlandC szoftver hasznalatakor jelentkezo: // floating point format not linked // futasi hiba a telepitett rendszer tulzott "lebutitasanak" kovetkezmenye, ez a program jól működik. */ //5., #include #include #define DARAB 100 //makro void main(void) { double a[DARAB], b[DARAB], c[DARAB]; int i, n, haromszog, szh; double keruletosszeg; clrscr(); printf("\n ZH 5. feldat pelda"); printf("\n Kerem az adatharmasok darabszamat:"); scanf("%d", &n); //darabszam for (i=0; i c[i] && a[i]+c[i] > b[i] && b[i]+c[i] > a[i] && a[i]>0 && b[i]>0 && c[i]>0) //haromszog haromszog++; if ( a[i]==b[i] && a[i]==c[i] ) //szabalyos haromszog { keruletosszeg+=a[i]+b[i]+c[i]; //vagy keruletosszeg+=3*a[i]; szh++; } } printf("\n A listaban %d darab haromszog szerepelt ", haromszog); if (szh>0) printf("\n A szabalyos haromszogek keruletatlaga: %lf", keruletosszeg/szh); else printf("\n Nem volt szabalyos haromszog."); getch();//bill. lenyomasara var } // FIGYELEM! A gyakorlaton hasznalt BorlandC szoftver hasznalatakor jelentkezo: // floating point format not linked // futasi hiba a telepitett rendszer tulzott "lebutitasanak" kovetkezmenye, ez a program jól működik. //---------------------------------------------------------------------------