1. Írjunk programot, amely függvény alkalmazásával meghatározza n a értékét, (a az n-edik gyök alatt), az általunk megadott pontossággal, iterációval. Az iteráció képlete a következő: ahol : n-1 x uj = x regi + ( 1/n ) * ( a / x regi - xregi ) ; x uj : a kiszámolandó érték, x regi : az előzőleg kiszámolt érték a : az alap, n : a gyökkitevő Az iteráció befejeződik, ha x uj - xr egi < ; ahol : a pontosság értéke. #include <math.h> int valasz; /* Az iter függvény prototípusa */ double iter( double, double, double ); double n, a, e, gyok; do printf("\n"); printf("kérem a gyökkitevôt : "); scanf("%lf",&n); printf("kérem az alapot : "); scanf("%lf",&a); printf("kérem a hibahatárt : "); scanf("%lf",&e); /* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ; printf("\na^(1/n) = %lf\n",gyok); printf("\ntovábbi iteráció (i/n) : ") ; valasz = getc(stdin) ; while( valasz == 'i' );
/* Az iter függvény megvalósítása */ double iter( double kitevo, double alap, double hiba ) double xuj, xregi; xuj = alap ; xregi = 0 ; do xregi = xuj ; xuj = xregi + (1/kitevo)*(alap/pow(xregi,kitevo-1)- xregi); while( fabs(xuj - xregi) > hiba ) ; /* A gyök értékével tér vissza a függvény */ return( xuj );
2. Írjunk programot, amely beolvas egy kétjegyű számot és kiírja szövegesen. Használjunk függvényeket. void egyesek ( int ); // Az egyesek függvény prototípusa int szam,tizes,egyes,vane; do do printf("\nkérem a kétjegyü számot : ") ; scanf("%d",&szam) ; while( szam%1!= 0 szam/10 < 1 szam/10 > 9); tizes = szam/10 ; egyes = szam%10 ; switch( tizes ) case 1: if( egyes == 0 ) printf("\ntiz") ; else printf("\ntizen"); case 2: if( egyes == 0 ) printf("\nhúsz") ; else printf("\nhuszon"); case 3: printf("\nharminc"); case 4: printf("\nnegyven");
case 5: case 6: case 7: case 8: printf("\nötven") ; printf("\nhatvan"); printf("\nhetven"); printf("\nnyolcvan"); case 9: printf("\nkilencven"); default: /* End SWITCH */ /* Az egyesek függvény hívása */ egyesek( egyes ); printf("\nvan-e még szám (i/n) : "); vane = getc(stdin); while( vane == 'i' ); /* Az egyesek függvény megvalósítása */ void egyesek( int e ) switch( e ) case 1: printf("egy") ; case 2: printf("kettô"); case 3: printf("három"); case 4: printf("négy"); case 5: printf("öt"); case 6: printf("hat");
case 7: case 8: case 9: default: printf("hét"); printf("nyolc"); printf("kilenc");
3. Készítsen egy olyan függvényt, amely adott sorszámú üzenetet ír ki a képernyőre. Hívja meg a függvényt hatszor, hat különböző sorszámú üzenet kiírásához. int uzen (int); /* prototípusa */ int main (void) int i, ok; //meghívjuk a függvényt hatszor for (i=1; i<7; i++) ok = uzen (i); /* A függvény hívása */ printf (" ** %2d **", ok); int uzen (int sorszam) /* A függvény definíciója */ switch (sorszam) case 1: printf ("\nelső üzenet"); return 1; case 2: printf ("\nmásodik üzenet"); return 1; case 3: printf ("\nharmadik üzenet"); return 1; case 4: printf ("\nnegyedik üzenet"); return 1; case 5: printf ("\nötödik üzenet"); return 1; default:
4. A programban definiáljunk egy 5x5-ös mátrixot. A mátrix minden elemének adjunk értéket. Ezután írjunk programot amely a főátlójára tükrözi a definiált mátrixot! A program kiírja az eredeti és a tükrözött mátrixot. int a[5][5] = 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25 ; int i,j,s; printf("\neredeti : "); printf("\n\n"); for(i=0; i<5; i++) for(j=0; j<5; j++) printf(" %2d",a[i][j]); printf("\n"); /* Most következik a mátrix tükrözése */ for(i=0; i<5; i++) for(j=i; j<5; j++) s = a[j][i]; a[j][i] = a[i][j]; a[i][j] = s; printf("\ntükrözött : ");printf("\n\n"); for(i=0; i<5; i++) for(j=0; j<5; j++) printf(" %2d",a[i][j]); printf("\n");
5. A programban definiáljunk egy 2x3 - as és egy 3x2 - es mátrixot értékekkel. Írjunk programot, amely összeszorozza őket és kiírja az eredményt. #define N 3 #define M 2 int a[n][m] = ; int b[m][n] = long c[n][n]; int i, j, k; ; 1, 2, 3, 4, 5, 6 1, 2, 3, 4, 5, 6 for(i=0; i<n; i++) for(j=0; j<n; j++) c[i][j]=0l; for(k=0; k<m; k++) c[i][j] += a[i][k]*b[k][j]; for(i=0; i<n; i++) for(j=0; j<n; j++) printf("c[%d][%d] = %3ld%c",i,j,c[i][j], (j == N-1)? '\n' : ' ');
6. Olvassunk be egy maximum 20 karakterbôl álló szöveget, majd irjuk ki fordítva! Irassuk ki a karaktersorozat hosszát is! #include <string.h> char szoveg[20]; int i, n; printf("adj meg egy szoveget [max 20. betu]\n"); scanf("%s", szoveg); /* bekerjuk a szoveget */ n = strlen(szoveg); for(i = n-1; i >= 0; i--) printf("%c", szoveg[i]); printf("\n"); printf("szoveg hossza: %d\n", n);