1 / 144

Borland C/C++ mintapéldák

Borland C/C++ mintapéldák. 1. feladat. ‘Ez aztán nem semmi’ szöveg kiiratása a képernyőre: Megoldás: #include &lt;stdio.h&gt; void main (void) { Printf(”Ez aztán nem semmi!<br>”); }. 2. feladat. Példa a változók deklarálására és kezdeti értékadásra. Megoldás: #include &lt;stdio.h&gt;

page
Download Presentation

Borland C/C++ mintapéldák

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ák

  2. 1. feladat • ‘Ez aztán nem semmi’ szöveg kiiratása a képernyőre: • Megoldás: • #include <stdio.h> • void main (void) • { • Printf(”Ez aztán nem semmi!\n”); • }

  3. 2. feladat • Példa a változók deklarálására és kezdeti értékadásra. • Megoldás: • #include <stdio.h> • void main (void) • { • int a,b,c; • int osszeg,szorzat; • a=1; • b=-2; • c=3; • osszeg=a+b+c; • szorzat=a*b*c; • printf(”Az osszeg =%d\n”,osszeg); • printf(”A szorzat =%d\n”,szorzat); • }

  4. 3. feladat • Példa a konstansok deklarálására, használatára, megszüntetésére. • Megoldás: • #include <stdio.h> • #define TUCAT 12 • #define UZENET ”Szoveg konstans vagyok\n” • void main (void) • { • int w; • w=TUCAT; • a=1; • printf(”w=°%d/n”,w); • #undef TUCAT • printf(UZENET); • }

  5. 4. feladat • Példa a számábrázolás veszélyeire. • Megoldás: • #include <stdio.h> • main () • { • int a,b,c; • unsigned int aa,bb,cc; • a=15000; • b=15000; • c=a+b; //sikeres muvelet • printf(„”a=%6d, b=%6d, c=%6d”,a,b.c); • a=20000; • b=20000; • c=a+b; //tulcsordulas • printf(„”a=%6d, b=%6d, c=%6d”,a,b.c); • aa=30000; • b=30000; • c=aa+bb; //sikeres muvelet • printf(„”aa=%6u, bb=%6u, cc=%6d\n”,aa,bb.cc); • aa=40000; • bb=40000; • cc=aa+bb; //tulcsordulas • printf(„”aa=%6d, bb=%6d, cc=%6d\n”,aa,bb.cc); • }

  6. 5. feladat • Példa a kiiratás típusaira • Megoldás: • #include <stdio.h> • main () • { • char x; • int a,b; • float c,d; • x=‘w’; • a=-57; • b=197; • c=2.0897; • d=-3.67e8; • printf(”a=%d b=%d\n”,a,b); • printf(”c=%f d=%e\n”,c,d); • printf(”x=%c\n”,x); • }

  7. 6. feladat • Példa a kiiratás típusaira • Megoldás: • #include <stdio.h> • main () • { • float x; • doube y; • w=1.0; • while(x!=x+1) • { • x=x+1.1; • printf(„Adatábrázolás float esetén = °e\n”,x); • } • y=1.0; • while(x!=x+1) • { • y=y+1.1; • printf(„Adatábrázolás double esetén = °e\n”,y); • } }

  8. 7. feladat • Példa a bit operátorokra • Megoldás: • #include <stdio.h> • main () • { • int ab,c,d,e; • a=16; • b=a<<2;//2-vel balra léptet • c=>>4;//4e-el jobbra léptet • d=a&0x1;// bitenkénti ÉS kapcsolat 1-el hexába • e=a|07;//bitenkénti VAGY kapcsolat 7-el oktálisan • printf(”a=%d b=%d c=%d d=%d e=%d\n”,a,b,c,d,e); • }

  9. 8. példaPélda a mutatókra. • Megoldás: • #include <stdio.h> • main() • { • int a, b, c, d, e, * mutato; • mutato = &a; /* mutató a-ra mutat */ • a = 10; • b = a++; /* a b-be, a növelése */ • c = ++a; /* a növelése, a c-be */ • d = *mutato; /* d-be a mutatott érték */ • e = sizeof (mutato); /* mutato mérete e-be */ • printf ( "a = %d, b=%d, c= %d\n", a, b, c ) ; • printf ( "d = %d, e=%d\n", d, e ) ; • } /* main *./

  10. 9. példaPélda a kevert típusú kifejezésekre • #include <stdio.h> • main() • { • int i; • char j; • float x; • i = -5; j = 3; • x = 1.0; • printf (" -5/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" -4/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" -3/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" -2/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" -1/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" -0/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" 1/3 + 1.0 is %f\n", i/j + x ); i++;

  11. 9. Példa folytatása • printf (" 1/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" 2/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" 3/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" 4/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" 5/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" 6/3 + 1.0 is %f\n", i/j + x ); i++; • printf (" 7/3 + 1.0 is %f\n", i/j + x ); i++;

  12. i = -5; j = 3; • x = 1.0; • printf ("1.0 + (-5/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (-4/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (-3/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (-2/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (-1/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (-0/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (1/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (2/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (3/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (4/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (5/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (6/3) is %f\n", x + i/j ); i++; • printf ("1.0 + (7/3) is %f\n", x + i/j ); i++; • } /* main *./

  13. 10. példaPélda a vessző operátor használatára. A könnyű olvashatóság kedvéért ezt célszerű kerülni. • #include <stdio.h> • main () • { • inta, b, c; • int i, j; • a=(b=c=2,c=c+3); • printf ( "a - %d, b - %d, c = %d\n", a, b, c ); • i = j = 2,j = j + 3; • printf( "i = %d, j = %d\n", i, j ); • } /* main */

  14. 11. példaPélda balértékként nem használható objektumokra, mivel a program szintaktikai hibákat tartalmaz nem futtatható. • #include <stdio.h> • #define TUCAT 12 • main () • { • inta, b, c; • a = TUCAT; /* helyes utasítás */ • TUCAT = a; /* szintaktikus hiba !! */ • c = a + TUCAT; /* szintaktikailag jó*/ • a + b = c /* szintaktikus hiba !! */ • } /* main */

  15. 12. példaPélda a for () ciklus használatára. Faktoriális számolása. A for () ciklus utáni utasítás zárójel tulajdonképpen felesleges.Megoldás I. • #include <stdio.h> • main() • { • int i, x; • double y; • x =5; • y=l; • for ( i = 1; i <= x; i++ ) • { • y = y * i; • } /* for */ • printf ( "%d faktorialisa = %f\n",x,y); • } /* main */

  16. Megoldás II. • #include <stdio.h> • main() • { • int i, x; • double y; • x =5; • for ( i = 1, y = 1; i <= x; i++ ) y = y * i; • printf ( "%d faktorialisa = %f\n",x,y); • } /*. main */

  17. 15. példaPélda a while () ciklus használatára. • #include <stdio.h> • main() • { • int p = 10; • while ( p ) printf ("p = %d\n", p --); • } /* main */

  18. 16. példaEgy újabb példa a while ciklusra. A legkisebb ábrázolható szám megkeresése. Vizsgáljuk meg, hogy a kapott eredmények összhangban vannak-e az elmélettel. • #include <stdio.h> • main() • { • float a, aregi; • double b, bregi; • a = 1.0; • while ( a ! = 0.0 ) /* amíg hamis nem lesz */ • { • aregi = a; /* előző érték elmentése*/ • a = a / 2.0; • } / * whilw */ • printf ("Float-nal a legkisebb =%e\n", aregi ); • b = 1.0; • while ( b ! = 0.0 ) • { • bregi = b; • b = b \ 2.0; • } / * whilw */ • printf ("Double-nal a legkisebb =%e\n", aregi ); • } /* main */

  19. 17. példaEgy újabb példa a while ciklusra. Az ábrázolási pontosságszemléltetése. Itt is indokoljuk a kapott eredményeket! • #include <stdio.h> • main () • { • float x; • double y; • x = 1.0; • while ( x != x + 1 ) x = x * 1.1; • printf("Abrazolasi pontossag float eseten = %e\n",x); • y = 1.0; • while ( y '!= y + l ) y = y * 1.1; • printf("Abrazolasi pontossag double eseten = %e\n",x); • } /* main */

  20. 18. példaPélda a do...while ciklus használatára. Nézzük meg azt az esetet is amikor x integer típusú változó! • #include <stdio.h> • main() • { • float x; • printf( "Nekiallok varakozni !" ); • x = 0; • do • { • x++; • } • while ( x < 10000 ); • printf( "\n Befejeztem. \n" ); • } /* main */

  21. 19. példaPélda az if elágazásra. Parancsértelmezés. • #include <stdio.h> • main() • { • char c; • printf( "Usse be a parancskodot (a, b, c ): " ); • c = getchar(); /* a kod beolvasasa */ • if (c == 'a' ) • { • printf( "Az a parancs vegrehajtva\n" ); • } /* if */ • else • { • if ( c == 'b') • { • printf ( "A b parancs: vegrehaj tva\n" }; • } /* if */ • else • {

  22. 19. Feladat folytatása • if ( c == 'c' ) • { • printf( "A c parancs vegrehajtva\n" ); • } /* if */ • else • { • printf( "Illegalis parancs: '%c'\n", c ); • } /* else */ • } /* else */ • } /* else */ • } /* main */

  23. 20. példaAz előző feladat megoldása switch-el. Mi történik ha elhagyom a break utasitasokat? • #include <stdio.h> • main() • { • char c; • printf( "Usse be a parancskodot (a, b, c ): " ); • c = getchar (); /* a kod beolvasasa */ • switch ( c ) • { • case 'a': printf( "Az a parancs vegrehajtva\n" ) • break • case 'b': printf( "A b parancs vegrehajtva\n" ); • break; • case 'c': printf( "A c parancs vegrehajtva\n" ); • break; • default: printf( "Illegalis parancs\n" ); • } • ) /* main */

  24. 21. példaAz előző példa nagybetűket is elfogadó változata. • #include <stdio.h> • main() • { • char c; • printf ('"Usse'be a. parancskodot (a, b, c ): " ); • c = getchar (); /* a kod"beolvasasa */ • switch ( c ) • { • case 'a': case 'A' : • printf( "Az a parancs vegrehajtva\n" ); • break; • case 'b': case 'B': • printf( "A b parancs vegrehajtva\n" ); • break; • case 'c*: case 'C': • printf( "Ac parancs vegrehajtva\n" ); • break; • default : printf( "Illegalis parancs\n" ); • } • } /* main */

  25. 22. példaPélda nagybetű-kisbetű konverzióra az if segitségével. Csak a nagybetűket alakitja át a tbbbit változatlanul hagyja. • #include <stdio.h> • main() • char c; • while ( ( c = getchar() ) != EOF ) • { • if ( 'A' <= c && c <= 'Z' ) • { • c = c + 'a' - 'A'; • } /* if */ • putchar( c ); • } /* while */ • } /* main */

  26. 23. példaPélda kisbetű-nagybetű felcserélésre feltételes kifejezéssel. Itt található példa a háromoperandusú kifejezés használatára. • #include <stdio.h> • main() • { • char c; • while ( ( c = getchar() ) != EOF ) • ( • putchar(('A'<=c && c<='Z') ? c-'A'+'a' : c+'A'-'a'); • }/* while */ • } /.* main */

  27. 24. példaPélda kisbetű-nagybetű felcserélésre könyvtári függvényekkel. Nézzük át milyen függvények találhatók meg a ctype.h header file-ban! • #include <stdio.h> • #include <ctype.h> • main() • { • char c; • while ( ( c = getchar() ) != EOF ) • { • if ( isupper ( c )) c = tolower ( c ); • else c = toupper ( c }; • putchar ( c ); • } /* while */ • } /* main */

  28. 25. példaPélda számsorozat beolvasására, a szóközöket átlépve. Gondoljuk át pontosan a continue • #include <stdio.h> • main() • { • char c; • float i; • i= 0; • while ( ( c = getchar() ) != EOF- ) • { • if ( c >= *0' && c <= *9* } i = i*10 + c - '0' ; • else if C e == ' ' continue; • else break; • } /* while */ • printf( "Az atalakitott ertek %f\n",i ); • } /* main */

  29. 26. példaPélda integer konverziójára ASCII kódsorozattá. Ez a programis tartalmaz olyan utasítást , zárójeleket, amelyek csak azolvashatóság megkönnyítésére kerültek bele. • #include <stdio.h> • main (} • { • unsigned int num; /* konvertalt szam */ • char c; /* beolvasott karakter */ • char bit; /* kicsorgo bit erteke */ • int i; /* bitszamlalo */ • num =. 0; • printf{ "Uss be egy pozitiv szamot: " ); • while ( ( c = getchar() ) != EOF ) • { • if ( c — '\n' || ( c < '0* I I c > '9' ) ) • { • printf ( "%u a kettes szamrends-zerben ", num );

  30. 26.példa folytatása • for ( i - 16; i > 0; i— ) • { • bit = !( !( num & 0x8000 ) ); • bit = bit + '0'; /* ASCII lesz */ • putchar( bit ); • num = num « 1; /* num balra lep*/ • } /*for */ • putchar ( '\n' ); • printf( "Uss be egy pozitiv szamot: " ); • num = 0; • } /* if */ • else • { /* ASClI-binaris konv. */ • num = num * 10 + c - '0';. • } /* else */ • } /* while */ • } /* main */

  31. 27. példaPélda függvénydefinícióra és függvényhívásra. Miért nem kelldeklarálni az add függvényt? • #include <stdio.h> • main() • { • int sum,a1,a2,a3; • a1 = 5; • a2 = -7; • a3 =30; • sum = add( a1, a2, a3 ); • printf( "Az összeg = %d\n", sum ); • } /* main */ • int add( a, b, c ) • int a; /* a függvény ...*/ • int b; /* argumentumainak ..*/ • int c; /* deklarációja */ • { • int sum; /* belső változó definíciója */ • sum = a + b + c; • return( sum ); • } /* add */

  32. 28. példaPélda a hatványozás megvalósítására. (Tudjuk, hogy a math.h-ban pow néven már realizálták.) • #include <stdio.h> • main() • { • int kitevo, alap, ered; • printf( "Positiv alap, novekvo kitevok\n" ); • for ( kitevo - 0, alap = 4; kitevo < 5; kitevo++ ) • ered = power( alap, kitevo ); • printf( "%d a(z) %d.-on: %d\n",alap,kitevo,ered ); • } /* for */ printf( "Negativ alap, novekvo kitevok\n" ); • for ( kitevo = 0, alap =-2; kitevo < 5; kitevo++ ) • { • ered = power( alap, kitevo ); • printf( "%d a(z) %d.-on: %d\n", alap,kitevo,ered ); • } /* for */ • printf( "0 hatvanyai\n" );

  33. for ( kitevo = 0, alap = 0; kitevo < 3; kitevo++ ) • { • ered = power( alap, kitevo ); • printf( "%d a(z) %d.-on: %d\n"/'alap-/ kitevo, ered J ; • } /* for */ • printf( "Nehany ertek negativ hatvanyaW ); • for { kitevo = -2, alap = -2; alap < 3; alap++ ) • { • ered = power( alap, kitevo ); • printf( "%d a(z) %d.-on: %d\n"#alap,kitevo,ered ); • } /* for */ • kitevo = -1; • alap = 5; • ered = power( alap, kitevo ); • } /* main */

  34. int power( base, pwr ) • int base, pwr; • { • int val; • if ( pwr < 0 ) • { /* negatív kitevő */ • if ( base == 1 ) return( 1 ); • /* 1 minden hatvanya 1 */ • return( 0 ) ; • } /* if *"/ • val = 1; /* ez jó 0 kitevőre is ! */ • while ( pwr— > 0 ) val *=base; • /* ismetelt szorzás, míg kell */ • return( val ); • } /* power */

  35. 29. példa • Olvassa be egy négyzet oldalát! • Számolja és írja ki a négyzet kerületét és területét.

  36. 29. példa megoldása • #include <stdio.h> • int main(){ • int a; • printf("Add meg az oldal hosszat!\n"); • scanf("%d", &a); • printf("A kerület:%d\n", 4*a); • printf("A terület:%d\n", a*a); • }

  37. 30. példa • Olvassa be egy téglalap két oldalát! • Számolja és írja ki a téglalap kerületét és területét külön függvény megírásával. • A main függvényben hívja meg a két függvényt

  38. 30. példa megoldása • #include <stdio.h> • int kerulet(int pa, int pb) • { • return 2*(pa+pb); • } • int terulet(int pa, int pb) • { • return pa*pb; • } • int main(){ • int a, b; • printf("Add meg az elso oldal hosszat!\n"); • scanf("%d", &a); • printf("Add meg a masodik oldal hosszat!\n"); • scanf("%d", &b); • printf("A kerület:%d\n", kerulet(a, b) ); • printf("A terület:%d\n", terulet(a, b) ); • }

  39. 31. példa • Olvassa be egy téglalatest három oldalát! • Számolja és írja ki a téglalatest felszínét és térfogatát külön függvény megírásával. • A main függvényben hívja meg a két függvényt

  40. 31. példa megoldása • #include <stdio.h> • int felszin(int pa, int pb, int pc) { • return 2*(pa*pb+pa*pc+pb*pc); • } • int terfogat(int pa, int pb, int pc) { • return pa*pb*pc; • } • int main(){ • int a, b, c; • printf("Add meg az elso oldal hosszat!\n"); • scanf("%d", &a); • printf("Add meg a masodik oldal hosszat!\n"); • scanf("%d", &b); • printf("Add meg a harmadik oldal hosszat!\n"); • scanf("%d", &c); • printf("A felszin:%d\n", felszin(a, b, c) ); • printf("A terfogat:%d\n", terfogat(a, b, c)); • }

  41. 32. példa • Deklaráljon egy valós, egy karakteres, egy egész típusú változót. Adjon nekik értéket és írassa ki mind a három változót egész, valós számként és karakterként is. • Figyelje meg az eredményt.

  42. 32. példa megoldása • #include <stdio.h> • int main() • { • int egesz = 13; • float valos = 0.1234567890123456789; • char karakter = 'A'; • printf("Egész egészként kiírva: %d\n", egesz); • printf("Valós egészként kiírva: %d\n", valos); • printf("Karakter egészként kiírva: %d\n", karakter); • printf("Egész valósként kiírva: %f\n", egesz); • printf("Valós valósként kiírva: %f\n", valos); • printf("Karakter valósként kiírva: %f\n", karakter); • printf("Egész karakterként kiírva: %c\n", egesz); • printf("Valós karakterként kiírva: %c\n", valos); • printf("Karakter karakterként kiírva: %c\n", karakter); • return 0; • }

  43. 33. példa • Példa a lokális és globális változókra. • Figyelje meg az eredményt.

  44. 33. Példa megoldása • #include <stdio.h> • int globalis = 0; • int fuggveny(int parameter) • { • int lokalis = 0; • lokalis += parameter; • globalis += parameter; • return lokalis;} • int main() { • int i; • scanf("%d", &i); • printf("lokalis == %d\n", fuggveny(i)); • printf("globalis == %d\n", globalis); • scanf("%d", &i); • printf("lokalis == %d\n", fuggveny(i)); • printf("globalis == %d\n", globalis); • scanf("%d", &i); • printf("lokalis == %d\n", fuggveny(i)); • printf("globalis == %d\n", globalis); • return 0; • }

  45. 34. példa • Kérjen be egy scanf változóval két karakteres és egy egész típusú változót és azt egy printf utasítással írassa ki.

  46. 34. Példa megoldása • #include <stdio.h> • int main() { • int egesz = 0; • char k1 = 'X', k2 = 'Y'; • printf("Beolvasás (karakter egész karakter): "); • scanf("%c%d%c", &k1, &egesz, &k2); • printf("egesz == %d; k1 == '%c'; k2 == '%c';\n", egesz, k1, k2); • return 0; • }

  47. 35. példa • Írjon olyan programot amely, kiírja egy beolvasott számtól 1-ig a kiszámolja a számok faktoriálisát.

  48. 36. példa megoldása • #include <stdio.h> • int main() { • int n=0, fakt=1; • printf("Add meg n erteket\n"); • scanf("%d", &n); • for(;n>1;--n) • { • fakt *= n; • printf("n!=%d\n", fakt); • } • return 0; • }

  49. 37. példa • Írassa ki a 0-tól 1000-ig található páratlan prímszámokat.

  50. #include <stdio.h> • include <math.h> • int main() { • int i, j, prim, ki=0; • for(i=1; i<1000; i+=2) /*csak a páratlanakkal foglalkozunk*/ • { • prim=1; • int veg = (int)sqrt(i); /*négyzetgyök i alsó egészrészéig elég menni*/ • for(j=3;j<veg;j+=2) • { • if(i%j==0) • { • prim = 0; • break; • } • } • if(prim) • { • printf("%d ", i); • if(++ki%10==0) printf("\n"); • } • } • printf("\n"); • }

More Related