1 / 9

Příklady v jazyku C – část 6

Příklady v jazyku C – část 6. Napište podprogram, který vypočítá objem krychle. Jednotlivé délky hran vstoupí jako 3 parametry. Vy v olejte tento podprogram v hlavním programu: #include <stdio.h> double objem(double h1, double h2, double h3) { return ( h1 * h2 * h3 ); } int main(void)

celina
Download Presentation

Příklady v jazyku C – část 6

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. Příklady v jazyku C – část 6

  2. Napište podprogram, který vypočítá objem krychle. Jednotlivé délky hran vstoupí jako 3 parametry. Vyvolejte tento podprogram v hlavním programu: #include <stdio.h> double objem(double h1, double h2, double h3) { return ( h1 * h2 * h3 ); } int main(void) { double vol; vol = objem( 12.2 , 5.67 , 9.03 ); printf(“ Objem krychle = %lf\n“ , vol ); while(!kbhit()); return 0; }

  3. Přehoďte hlavní program a podprogram a využijte a) dopředné deklarace (starší zp.) b) deklarace funkčího prototypu #include <stdio.h> /* double objem(); */ /*dopředná deklarace*/ double objem(double h1, double h2, double h3); /*funční prototyp*/ int main(void) { double vol; vol = objem( 12.2 , 5.67 , 9.03 ); printf(“ Objem krychle = %lf\n“ , vol ); while(!kbhit()); return 0; } double objem(double h1, double h2, double h3) { return ( h1 * h2 * h3 ); }

  4. Napište bezparametrový podprogram (nevrací hodnotu), který vytiskne v řádce 80 znaků “=“a je vyvolán v hlavním programu a odřádkuje. Jak napsat funkční prototyp u podprogramu, který nemá parametry a jak ho odlišit od dopředné deklarace? #include <stdio.h> void radka(void); int main() { radka(); printf("\n" ); while(!kbhit()); return 0; } void radka() { for (int i=0;i<80;i++) printf("="); }

  5. Napište rekurzivní podprogram rekurze(cislo), který vypíše řadu čísel od 9 do 0 , a jehož skutečný parametr předávaný do podprogramu je 0. #include <stdio.h> void rekurze(int cislo) { if (cislo<10 ) { rekurze(cislo+1); printf("cislo= %d\n",cislo); } } int main() { rekurze(0); while(!kbhit()); return 0; }

  6. Napište rekurzivní podprogram rekurze(cislo), který vypíše řadu čísel od 0 do 9 , a jehož skutečný parametr předávaný do podprogramu je 0. Přehoďte pořadí main a podprogramu oproti minilému příkladu a umožněte překladači dopředu poznat počet a typ parametrů. #include <stdio.h> void rekurze(int cislo); /* deklarace funkčního prototypu */ int main() { rekurze(0); while(!kbhit()); return 0; } void rekurze(int cislo) { if (cislo<10 ) { rekurze(cislo+1); printf("cislo= %d\n",cislo); } }

  7. K čemu jsou 2 parametry, které přebírá hlavní program ? Vyzkoušejte vypsání 1. celočíselného parametru a druhého řetězcového parametru. Program bude přeložen do tvaru .EXE a v příkazové řádce budou zadány jako parametry EXE-programu 2 řetězce: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; printf("%i \n\n",argc); i=1; while (argv[i]!='\0') { printf("%i ... %s\n",i,argv[i]); i++; } for (i=1; i<=argc; i++) printf("%i ... %s\n",i,argv[i]); system("PAUSE"); return 0; }

  8. Napište program, který přečte ze vstupního textového souboru věty po řetězcích (gets) (max.80 znaků) a vypisuje je ( printf ) na výstup. Jméno programu přečte z parametrické řádky EXE programu . Po každé větě se zeptá ”Dále? (y/n) …” a umožní při “N” skončit. Stejně tak skončí při dosažení konce souboru (testování pomocí FEOF() ) #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(int argc, char *argv[]) { FILE *fp; char str[80]; if(argc != 2) { /* Je specifikovano jmeno souboru ? */ printf("Chybi jmeno souboru.\n"); while(!kbhit()); exit(1); } if((fp = fopen(argv[1], "r"))==NULL) { printf("Nelze otevrit soubor.\n"); while(!kbhit()); exit(1); } while (!feof(fp)) { fgets(str, 79, fp); if(!feof(fp)) printf("%s", str); printf("...Dale? (a/n) "); if(toupper(getchar())=='N') break; printf("\n"); } fclose(fp); while(!kbhit()); return 0; }

  9. Napište program, který zkopíruje po znacích (getc) vstupní soubor do souboru výstupního (putc). Jména vstupního a výstupního souboru přečte z parametrické řádky EXE programu . Skončí při dosažení konce souboru (testování pomocí FEOF() ). #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(int argc, char *argv[]) { FILE *from, *to; char ch; if(argc != 3) { /* Zkontroluj pocet argumentu prikazoveho radku * printf("Chybny pocet argumentu: \n\n Pouziti: copy <zdroj> <cil>\n"); while(!kbhit()); exit(1); } if((from = fopen(argv[1], "r"))==NULL) { /* otevreni zdrojoveho souboru */ printf("Nelze otevrit zdrojovy soubor.\n"); while(!kbhit()); exit(1); } if((to = fopen(argv[2], "w"))==NULL) { /* otevreni ciloveho souboru */ printf("Nelze otevrit cilovy soubor.\n"); while(!kbhit()); exit(1); } while(!feof(from)) { /* kopíruj soubor a preved na velka pismena */ ch = fgetc(from); if(!feof(from)) fputc(toupper(ch), to); } fclose(from); fclose(to); while(!kbhit()); return 0; }

More Related