1 / 60

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

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. #include <stdio.h> #define N 10 #define M 10 int main() { int tomb[N]; int i; for(i=0; i<M; i++) { tomb[i]=i+1; }

trish
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Borland C/C++ mintapéldáktö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 1..10 értékekkel, majd írasd ki az elemeit

  3. #include <stdio.h> • #define N 10 • #define M 10 • int main() • { • int tomb[N]; • int i; • for(i=0; i<M; i++) { • tomb[i]=i+1; • } • for(i=0; i<M; i++) { • printf(" %d", tomb[i]); • } • return 0; • }

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

  5. #include <stdio.h> • #define MERET 10 • int main(){ • int szamok[MERET]; • int c; • for (c = 0 ; c<MERET ; c++){ • printf("%d. szam : ", c+1); • scanf("%d",&szamok[c]); • /*lehetne*/ • /*scanf("%d",szamok+c);/**/ • /*is*/ • } • printf("A beirt szamok forditott sorrendben : \n"); • for(c = MERET-1 ; 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 <stdio.h> 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 <stdio.h> 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 <stdio.h> #include <conio.h> 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 <stdio.h> • #include <string.h> • 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 <stdio.h> • #include <string.h> • int main() • { • char str[20]; • strcpy(str, "Hello Vilag!"); • printf("%s", str); • str[5]='\0'; • printf("%s", str); • return 0; • }

  17. 8. példaPé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 <stdio.h> • #define OSZLOP 6 • #define SOR 8 • int arr[ 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éldaPé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 <stdio.h>. • 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éldaPé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 <stdio.h> • #define N 10 • void tombabs(int tomb[], int meret) { • int i; • for(i=0; i<meret; i++) { • if(tomb[i]<0) { • tomb[i] = -tomb[i]; • } • } • } • void kiir(int tomb[], int meret) { • int i; • for(i=0; i<meret; i++) { • printf(" %d", tomb[i]); • } • putchar('\n'); • }

  22. int main() • { • int i, T[N], e=1; • for(i=0; i<N; i++) { • T[i]=e; • e *= -2; • } • kiir(T, N); • tombabs(T, N); • kiir(T, N); • return 0; • }

  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 <stdio.h> • #define N 10 • void tombabs(int tomb[], int meret) { • int i; • for(i=0; i<meret; i++) { • if(tomb[i]<0) { • tomb[i] = -tomb[i]; • } • } • } • void kiir(int tomb[], int meret) { • int i; • for(i=0; i<meret; i++) { • printf(" %d", tomb[i]); • } • putchar('\n'); • }

  25. int main() • { • int i, T[N], e=1; • for(i=0; i<N; i++) { • T[i]=e; • e *= -2; • } • kiir(T, N); • tombabs(T, N); • kiir(T, N); • return 0; • }

  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 <stdio.h> • #define N 3 • int main() • { • int tomb[N][N]; • int i, j; • for(i=0; i<N; i++) { • for(j=0; j<N; j++) { • scanf("%d", &(tomb[i][j])); • } • } • for(i=0; i<N; i++) { • for(j=0; j<N; j++) { • printf("%d", tomb[i][j]); • } • } • for(i=0; i<N; i++) { • for(j=0; j<N; j++) { • printf("%d", tomb[j][i]); • } • } • return 0; • }

  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 <stdio.h> • #define MERET 10 • int main(){ • int szamok[MERET]; • int c; • for (c = 0 ; c<MERET ; c++){ • printf("%d. szam : ", c+1); • scanf("%d",&szamok[c]); • /*lehetne*/ • /*scanf("%d",szamok+c);/**/ • /*is*/ • } • printf("A beirt szamok forditott sorrendben : \n"); • for(c = MERET-1 ; 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 <stdio.h> • 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 <stdio.h> • int main(){ • enum osztalyzatok {elegtelen, elegseges, kozepes, jo, jeles}; • enum osztalyzatok jegy; • printf("Osztályzat : "); • scanf("%d",&jegy); • if (jegy < 1 || 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.

More Related