Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Příklady v jazyku C – část 6. Napište podprogram, který vypočítá objem krychle. Jednotlivé délky hran vstoupí jako 3 parametry. Vyvolejte tento podprogram.

Podobné prezentace


Prezentace na téma: "Příklady v jazyku C – část 6. Napište podprogram, který vypočítá objem krychle. Jednotlivé délky hran vstoupí jako 3 parametry. Vyvolejte tento podprogram."— Transkript prezentace:

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 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 /* 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 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 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 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 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 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 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 \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; }


Stáhnout ppt "Příklady v jazyku C – část 6. Napište podprogram, který vypočítá objem krychle. Jednotlivé délky hran vstoupí jako 3 parametry. Vyvolejte tento podprogram."

Podobné prezentace


Reklamy Google