Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Borland C/C++ mintapéldák tömbökre. 1. példa Készíts egy 10 egész szám tárolására alkalmas tömböt. Töltsd fel az 1..10 értékekkel, majd írasd ki az elemeit.

Hasonló előadás


Az előadások a következő témára: "Borland C/C++ mintapéldák tömbökre. 1. példa Készíts egy 10 egész szám tárolására alkalmas tömböt. Töltsd fel az 1..10 értékekkel, majd írasd ki az elemeit."— Előadás másolata:

1 Borland C/C++ mintapéldák tömbökre

2 1. példa Készíts egy 10 egész szám tárolására alkalmas tömböt. Töltsd fel az értékekkel, majd írasd ki az elemeit

3 #include #define N 10 #define M 10 int main() { int tomb[N]; int i; for(i=0; i

4 2. példa Írjunk programot, ami beolvas 10 számot és fordított sorrendben kiírja azokat.

5 #include #define MERET 10 int main(){ int szamok[MERET]; int c; for (c = 0 ; c=0 ; c--){ printf("%d\t",szamok[c]); } printf("\n"); return 0; }

6 3. példa Írjunk programot, amely egy integer típusú tömbből kiválasztja a legkisebb elemet

7 #include void main() { //a egy 10 elemû,integer tömb,inicializálva. int a[10] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; int i, min; min = a[0]; for(i=0; i<10; i++) { // Ha az aktuális minimum nagyobb a // tömbelemnél if( min > a[i] ) min = a[i] ; } printf("\nA legkisebb elem = %2d",min); }

8 4. példa Írjunk programot, amely egy integer típusú tömbből kiválasztja a legnagyobb elemét.

9 #include void main() { //a egy 10 elemû,integer tömb,inicializálva. int a[10] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; int i, max; max = a[0]; for(i=0; i<10; i++) { // Ha az aktuális minimum nagyobb a // tömbelemnél if( max < a[i] ) max = a[i] ; } printf("\nA legnagyobb elem = %2d",min); }

10 5. példa Írjunk programot, amely két double típusú tömbbe beolvas értékeket és utána összeadja a tömbök elemeit elemhelyesen.

11 #include #include main() { double a[3][3], b[3][3], c[3][3]; int i, j; for(i=0; i<3; i++)// Beolvasás az a mátrixba { for(j=0; j<3; j++) { printf("A[%d][%d] = ",i,j) ; scanf("%lf",&a[i][j]) ; } } printf("\n \n\n");

12 for(i=0; i<3; i++) // Beolvasás a b mátrixba { for(j=0; j<3; j++) { printf("B[%d][%d] = ",i,j) ; scanf("%lf",&b[i][j]) ; } } printf("\n \n\n"); for(i=0; i<3; i++) // A c = a + b képzése { for(j=0; j<3; j++) c[i][j] = a[i][j] + b[i][j]; } for(i=0; i<3; i++) // A c mátrix kiiratása { for(j=0; j<3; j++) printf("%8.2lf%c", c[i][j],( ((j+1)%3 == 0) '\n' : ' ') ); } getch(); }

13 6. példa Deklarálj egy megfelelő hosszúságú karaktertömböt, majd írd bele a "Hello Vilag!" szöveget! Írasd ki az str értékét kétféleképpen!

14 #include int main() { /* char str[] = "Hello Vilag!" */ /* azért nem így írtam, hogy használjuk a string.h-t" */ char str[20]; strcpy(str, "Hello Vilag!"); printf("%s\n", str); return 0; }

15 7. példa Deklarálj egy megfelelő hosszúságú karaktertömböt, majd írd bele a "Hello Vilag!" szöveget! Írasd ki az str értékét kétféleképpen! Módosítsd a programot úgy, hogy a következő sorba csak a "Hello" szöveget írja ki!

16 #include int main() { char str[20]; strcpy(str, "Hello Vilag!"); printf("%s", str); str[5]='\0'; printf("%s", str); return 0; }

17 8. példa Példa kétdimenziós tömb definíálásra futásidőben történő előkészítése és felhasználása. #include #define OSZLOP6 #define SOR 8 intarr[ OSZLOP ][ SOR ];/* tömbdefiníció */ mainQ { int i, j;/* indexváltozók */ for { i = 0; i < OSZLOP; i++ ) { for { j = 0; j < SOR; j++ ) arr{ i ][ j ] = i * j; } /* for */ for ( i = 0; i < OSZLOP; i++ ) {/* tömb felhasználása */ printf( "arr[ %d ][*}:\t", i ); for { j = 0; j < SOR; j++ ) { printf ( "%5d", arrI 1 ]\ j ] ); } /* for */ printf ( "\n" }; } /* for */ } /* main */

18 9. példa Példa string beolvasására karakteres tömbbé. Mire való és melyik a string vége (EOS) karakter? Hogyan adunk karaktertömbnek kezdeti értéket? #include. char szoveg[ 100 ] = "Ez a kezdeti szoveg"; main() { int i, meret; char c; printf("'%s'\n", &szoveg[ 0 ]); printf( "Uss be egy uj szoveget ENTER-el lezarva: " ); for(i=0; (c = getchar()) != EOF && c != '\n'; i++ ) { szoveg[ i ] = c; } /* for */ szoveg[ i ] = 0; /* EOS generalasa */ for(i = 0,meret = 0;szoveg[1] != 0;i++) meret++; printf( "Az uj szoveg hossza = %d\n", meret ); } /* main */

19 10. példa Példa karaktertömb egyszerű másolására. Figyeljük meg, hogy a karaktertömb neve az első elem címével egyezik meg!

20 11. példa Írj egy függvényt, ami egy egész tömböt kap paraméterül és lecseréli benne az elemeket az abszolút értékükre. A tömb kiírását szintén függvény végezze!

21 #include #define N 10 void tombabs(int tomb[], int meret) { int i; for(i=0; i

22 int main() { int i, T[N], e=1; for(i=0; i

23 12. példa Írj egy függvényt, ami egy egész tömböt kap paraméterül és lecseréli benne az elemeket az abszolút értékükre. A tömb kiírását szintén függvény végezze!

24 #include #define N 10 void tombabs(int tomb[], int meret) { int i; for(i=0; i

25 int main() { int i, T[N], e=1; for(i=0; i

26 13. példa Készíts egy 3x3-as mátrixot, töltsd fel elemekkel, majd írasd ki az elemeit sor illetve oszlopfolytonosan is!

27 #include #define N 3 int main() { int tomb[N][N]; int i, j; for(i=0; i

28 fclose(be); ki = fopen("kettovel.txt","w"); if (ki == NULL) return 2; for( i = 0 ; i< c;i++){ if (tomb[i] % 2 == 0) fprintf(ki,"%d\t",tomb[i]); } fprintf(ki,"\n"); fclose(ki); return 0; }

29 14. példa Írjunk programot, ami beolvas 10 számot és fordított sorrendben kiírja azokat.

30 #include #define MERET 10 int main(){ int szamok[MERET]; int c; for (c = 0 ; c=0 ; c--){ printf("%d\t",szamok[c]); } printf("\n"); return 0; }

31 15. példa Írjunk programot, ami beolvas egy nevet és kiírja.

32 #include int main(){ char nev[80]; printf("Neved : "); scanf("%s",&nev[0]); /*lehetne*/ /*scanf("%s",nev);/**/ /*is*/ printf("Hello %s !\n",nev); return 0; }

33 16. példa Írjunk programot, ami beolvassa egy dolgozat osztályzatait és közepes eredmény esetén kiírja, hogy ‘Tanuljon többet’, míg jeles esetén kiírja, hogy ‘Eleget készültél.’

34 #include int main(){ enum osztalyzatok {elegtelen, elegseges, kozepes, jo, jeles}; enum osztalyzatok jegy; printf("Osztályzat : "); scanf("%d",&jegy); if (jegy 5) return 1; switch (jegy){ case elegtelen : case elegseges : case kozepes : printf("Tanulj többet ! \n"); break; case jo : case jeles:printf("Eleget készültél ! \n"); break; } return 0; }

35 17. példa Írjunk olyan függvényt amely egy tömb elemeit sorbarendeti maximum kiválasztás szerint.

36 void csere( int tomb[], int i, int j ) { int seged = tomb[ i ]; tomb[ i ] = tomb[ j ]; tomb[ j ] = seged; } void maxkival( int tomb[], int meret ) { int j; for ( j = meret - 1; j > 0; --j ) { int max = j, i; for ( i = 0; i < j; ++i ) if ( tomb[ i ] > tomb[ max ] ) max = i; csere( tomb, max, j ); }

37 18. példa Írjunk olyan függvényt amely egy tömb elemeit sorbarendeti minimum kiválasztás szerint.

38 void csere( int tomb[], int i, int j ) { int seged = tomb[ i ]; tomb[ i ] = tomb[ j ]; tomb[ j ] = seged; } void minkival( int tomb[], int meret ) { int j; for ( j = 0; j < meret - 1; ++j ) { int min = j, i; for ( i = j + 1; i < meret; ++i ) if ( tomb[ i ] < tomb[ min ] ) min = i; csere( tomb, min, j ); }

39 19. példa Írjunk olyan függvényt amely egy tömb elemeit sorbarendeti beszúrásos rendezés alapján

40 void beszurasos( int tomb[], int meret ) { int j; for ( j = 1; j < meret; ++j ) { int kulcs = tomb[ j ], i = j - 1; while ( i >= 0 && tomb[ i ] > kulcs ) { tomb[ i + 1 ] = tomb[ i ]; --i; } tomb[ i + 1 ] = kulcs; }

41 20. példa Írjunk olyan függvényt amely egy tömb elemeit sorbarendezi buborék rendezés alapján.

42 void csere( int tomb[], int i, int j ) { int seged = tomb[ i ]; tomb[ i ] = tomb[ j ]; tomb[ j ] = seged; } void buborek1( int tomb[], int meret ) { int i, j; for ( i = meret - 1; i > 0; --i ) for ( j = 0; j < i; ++j ) if ( tomb[ j + 1 ] < tomb[ j ] ) csere( tomb, j, j + 1 ); }

43 #define HAMIS 0 #define IGAZ ( !HAMIS ) void csere( int tomb[], int i, int j ) { int seged = tomb[ i ]; tomb[ i ] = tomb[ j ]; tomb[ j ] = seged; } void buborek2( int tomb[], int meret ) { int i, j, voltcsere = IGAZ; for ( i = meret - 1; i > 0 && voltcsere; --i ) { voltcsere = HAMIS; for ( j = 0; j < i; ++j ) if ( tomb[ j + 1 ] < tomb[ j ] ) { csere( tomb, j, j + 1 ); voltcsere = IGAZ; }

44 21. példa Írjunk olyan függvényt amely egy tömb elemeit sorbarendezi Shell rendezés alapján.

45 void shell( int tomb[], int meret ) { int lk[] = { 6, 3, 1 }; int lkindex; for ( lkindex = 0; lkindex < sizeof( lk ) / sizeof( int ); ++lkindex ) { int lepeskoz = lk[ lkindex ]; int eltolas, j; for ( eltolas = 0; eltolas < lepeskoz; ++eltolas ) for ( j = lepeskoz + eltolas; j < meret; j += lepeskoz ) { int i = j - lepeskoz; int kulcs = tomb[ j ]; while ( i >= 0 && tomb[ i ] > kulcs ) { tomb[ i + lepeskoz ] = tomb[ i ]; i -= lepeskoz; } tomb[ i + lepeskoz ] = kulcs; }

46 22. példa Írjunk olyan függvényt amely egy tömb elemeit sorbarendezi Shell rendezés alapján.

47 void csere( int tomb[], int i, int j ) { int seged = tomb[ i ]; tomb[ i ] = tomb[ j ]; tomb[ j ] = seged; } void gyors( int tomb[], int bal, int jobb ) { if ( bal < jobb ) { int also = bal, felso = jobb + 1, kulcs = tomb[ bal ]; for ( ; ; ) { while ( ++also < felso && tomb[ also ] < kulcs ) ; while ( tomb[ --felso ] > kulcs ) ; if ( also >= felso ) break; csere( tomb, also, felso ); } csere( tomb, felso, bal ); gyors( tomb, bal, felso - 1 ); gyors( tomb, felso + 1, jobb ); }

48 23. példa Írjunk olyan függvényt amely egy tömb elemei között lineárisan keres meg egy elemet.

49 int linearis( int tomb[], int meret, int ertek ) { int i; for ( i = 0; i < meret && tomb[ i ] < ertek; ++i ) ; return i < meret && tomb[ i ] == ertek ? i : -1; }

50 24. példa Írjunk olyan függvényt amely egy tömb elemei között binárians keres meg egy elemet.

51 int binaris( int tomb[], int meret, int ertek ) { int also = 0, felso = meret - 1; while ( also <= felso ) { int kozepso = ( also + felso ) / 2; if ( tomb[ kozepso ] == ertek ) return kozepso; if ( tomb[ kozepso ] > ertek ) felso = kozepso - 1; else also = kozepso + 1; } return -1; }

52 25. példa Írjunk olyan programot,amely a két 10 elemû, integer típusú tömböt a buborék­rendezéssal rendezi.

53 #include void main() { int x[10] = { 10, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int y[10] = { 10, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i, j, csere, s; // Sima buborékrendezés clrscr(); for(i=0; i<10-1; i++) { for(j=0; j<10-i-1; j++) { if( x[j] > x[j+1] ) { s = x[j] ; x[j] = x[j+1] ; x[j+1] = s ; } printf("\nSima buborékrendezés, menetek száma: %d\n",i); for(i=0; i<10; i++) printf("%3d",x[i]); printf("\n");

54 26. példa Írjunk olyan programot, amely egy 5x5-ös mátrixot a fôátlójára tükrözi.

55 #include void main() { 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; clrscr(); 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"); } getch(); }

56 27. példa Írjunk olyan programot, amely egy 2x3 - as és egy 3x2 - es mátrixot összeszoroz.

57 #include #define N 3 #define M 2 main() { int a[N][M] ={ 1, 2, 3, 4, 5, 6 }; int b[M][N] ={ 1, 2, 3, 4, 5, 6 }; long c[N][N]; int i, j, k; for(i=0; i

58 Gyakorló feladatok tömbökre 1.)Töltsünk fel egy 10 elemû integer vektort ! Ezután számítsuk ki a vektor ele­- mek átlagát ! 2.)Határozzuk meg ugyanennek a vektornak a legnagyobb elemét ! 3.)Töltsünk fel két 10 elemû integer vektort ! Ezután határozzuk meg a két vektor összeg ill. különbség vektorát ! 4.)Számítsuk ki az elôbbi két vektor skalárszorzatát ! 5.)Egy 20 fôs csoport zárthelyi eredményeit kell kiértékelni. A pontszámhatárok a következôk : elégtelen elégséges közepes jó jeles Az egyes zh. pontszámokat egy vektorba kell beolvasni, ki kell iratni az egyes zh-k osztályzatát, és meg kell állapítani, hogy hány elégtelen, elégséges... volt a cso­portban ! 6.)Töltsünk fel egy 5x5-ös integer mátrixot ! Ezután határozzuk meg mindegyik sorának legnagyobb ill. legkisebb elemét ! 7.)Töltsünk fel egy 5x5-ös double mátrixot ! ( Inicializálással is megoldható ! ) Ezu­tán határozzuk meg sor ill. oszlop összegeit. Az összegeket megfelelô méretü és típusú tömbökben tároljuk és irassuk is ki ! 8.)Töltsünk fel két 5x5-ös double mátrixot ! ( Inicializálással is megoldható ! ) Ezu­tán képezzük a. különbség mátrixot és irassuk ki ! 9.)Olvassunk be egy nxn - es mátrixot ! Készítsünk programot amely egy menü rend­szerbôl történô választás alapján a következô értékeket számítja ki : 1. egy tetszôleges sor átlaga 2.egy tetszôleges oszlop átlaga 3.valamennyi sor átlaga 4.valamennyi oszlop átlaga 5.az összes elem átlaga

59 10. feladat: Irjunk egy egyszerüsített morze jeleket elôállító programot ! A program inputja egy négyjegyü egész szám ! Le is kell ellenôrizni, hogy valóban négyjegyü-e ! A számot elôször átkódoljuk úgy, hogy az egyeseket a százasokkal ill. a tízeseket az ezresekkel cseréljük fel. Az így kapott számot kell morze jelek sorozatává ala­kítani a következôképpen : Az elsô jel a START legyen, ezt három szóköz kö­ves­­se. Ezután következzen a kódnak megfelelô jelsorozat szóközökkel elválaszt­va. Ezt a jelsorozatot kövesse három szóköz ill. a STOP jel. Mindaddig "morzéz­ni" kell amíg az 'i' billentyüt nyomjuk le a program által feltett kérdésre. A szükséges morze kódok a következôk : START = = = = = = = = = = = STOP =.-.-.

60 11. feladat: Irjunk programot, amely beolvas egy karakter típusú vektorba egy számot. A szám max. 6 db egész jegyet, tizedespontot és két tizedesjegyet tartalmaz. Igazítsuk a számot jobbra úgy, hogy a formátuma 9.2 legyen !


Letölteni ppt "Borland C/C++ mintapéldák tömbökre. 1. példa Készíts egy 10 egész szám tárolására alkalmas tömböt. Töltsd fel az 1..10 értékekkel, majd írasd ki az elemeit."

Hasonló előadás


Google Hirdetések