1 / 11

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

Příklady v jazyku C – část 4.

ollie
Download Presentation

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

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 4

  2. Vytvořte textový soubor ZNAKY.TXT, ve kterém budou náhodné znaky.Tento soubor čtěte po znacích cyklem „do while“ . Je-li znak nula,vypište “Byla to nula”, je-li 1, vypište “Byla to 1”.Je-li přečtený znak “q” , pak ukončete program. Otestujte I konec souboru EOF(). #include <stdio.h> #include <stdlib.h> int main() {FILE *fr; int c; if ((fr = fopen("ZNAKY.TXT", "r")) == NULL) { printf("Soubor se nepodarilo otevrit\n"); return 1; } do { switch (c = getc(fr)) { case '0' : printf("Byla to nula\n"); break; case '1' : printf("Byla to jednicka\n"); break; } } while (c != 'q' && c != EOF); if (fclose(fr) == EOF) { printf("Soubor se nepodarilo uzavrit\n"); return 1; } return 0; system("PAUSE"); }

  3. Vytvořte editorem soubor pismena.txt , kde bude několik řídek složených z malých a velkých písmen a mezer, tento soubor přečtěte a opište na obrazovku. Současně do souboru VELKY.TXT zapište obsah čteného souboru , ale malá písmenka převede na velká #include <stdio.h> #include <stdlib.h> int main() { FILE *fr, *fw; int c; if ((fr = fopen("PISMENA.TXT", "r")) == NULL) { printf("Soubor PISMENA.TXT se nepodarilo otevrit\n"); return 1; } if ((fw = fopen("VELKY.TXT", "w")) == NULL) { printf("Soubor VELKY.TXT se nepodarilo otevrit\n"); return 1; } while ((c = getc(fr)) != EOF) { putchar(c); /* vypis na obrazovku */ /* prevedeni na velka pismena */ c = (c >= 'a' && c <= 'z') ? c - ('a' - 'A') : c; putc(c, fw); /* zapis do souboru */ } if (fclose(fr) == EOF) printf("Soubor PISMENA.TXT se nepodarilo uzavrit\n"); if (fclose(fw) == EOF) printf("Soubor VELKY.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }

  4. Napište program , který spočte celkový počet znaků souboru PISMENA.TXT: #include <stdio.h> #include <stdlib.h> int main() { FILE *fr; int c; long int pocet = 0; /* pocet znaku v souboru */ if ((fr = fopen("PISMENA.TXT", "r")) == NULL) { printf("Soubor PISMENA.TXT se nepodarilo otevrit\n"); return 1; } while ((c = getc(fr)) != EOF) pocet++; printf("V souboru PISMENA.TXT je %ld znaku\n", pocet); if (fclose(fr) == EOF) printf("Soubor PISMENA.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }

  5. Vytvořte program, který přečte soubor PISMENA.TXT po řádcích, každou řádku opíše do souboru KOLIK.TXT a na nové řádce uvede, kolik znaků na ní bylo: #include <stdio.h> #include <stdlib.h> int main() {FILE *fr, *fw; int c, pocet = 0; /* pocet pismen na radce */ if ((fr = fopen("PISMENA.TXT", "r")) == NULL) { printf("Soubor PISMENA.TXT se nepodarilo otevrit\n"); return 1; } if ((fw = fopen("KOLIK.TXT", "w")) == NULL) { printf("Soubor KOLIK.TXT se nepodarilo otevrit\n"); return 1; } do { while ((c = getc(fr)) != EOF && c != '\n') { pocet++; putc(c, fw); /* zapis znaku do souboru */ } /* zapis poctu znaku do souboru */ fprintf(fw, "\n%d\n", pocet); pocet = 0; } while (c != EOF); if (fclose(fr) == EOF) printf("Soubor PISMENA.TXT se nepodarilo uzavrit\n"); if (fclose(fw) == EOF) printf("Soubor KOLIK.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }

  6. Vytvořte program,který zapíše do souboru CISLA.TXT dvacet reálných čísel – násobků 3.14 #include <stdio.h> #include <stdlib.h> int main() { FILE *fr; int i; if ((fr = fopen("CISLA.TXT", "w")) == NULL) { printf("Soubor CISLA.TXT se nepodarilo otevrit\n"); return 1; } for (i = 1; i <= 20; i++) fprintf(fr, " $%.2f\n", i * 3.14); if (fclose(fr) == EOF) printf("Soubor CISLA.TXT se nepodarilo uzavrit\n"); while ( !kbhit() ); return 0; }

  7. Čtěte reálná čísla ze souboru CISLA.TXT a spočtěte jejich aritmetický průměr. #include <stdio.h> #include <stdlib.h> int main() {FILE *fr; double cislo, suma; int pocet; /* pocet prectenych cislic */ pocet = 0; suma = 0; if ((fr = fopen("CISLA.TXT", "r")) == NULL) { printf("Soubor CISLA.TXT se nepodarilo otevrit\n"); return 1; } while (fscanf(fr, " $%lf\n", &cislo) == 1) { pocet++; suma += cislo; } printf("Aritmeticky prumer je: %f\n", suma / pocet); if (fclose(fr) == EOF) printf("Soubor CISLA.TXT se nepodarilo uzavrit\n"); system("PAUSE");return 0;}

  8. Napište program , který se pokouší číst neexistující soubor SCHAZI.TXT a vypíše chybovou zprávu. #include <stdio.h> #include <stdlib.h> int main(void) {FILE *fr; if ((fr = fopen("SCHAZI.TXT", "r")) == NULL) printf("Soubor SCHAZI.TXT se nepodarilo otevrit\n"); else { printf("Soubor SCHAZI.TXT je otevren\n"); if (fclose(fr) == EOF) printf("Soubor SCHAZI.TXT se nepodarilo uzavrit\n"); } system("PAUSE"); return 0; }

  9. Napište program ,který čte obsah souboru PISMENA.TXT a má možnost si zvolit výstup buď na obrazovku, nebo do souboru NOVY.TXT . #include <stdio.h> int main() { FILE *fr, *fw; int c; fr = fopen("PISMENA.TXT", "r"); printf("Vystup na obrazovku nebo do souboru [o / s]: "); c = getchar(); if (c == 'o') fw = stdout; else fw = fopen("NOVY.TXT", "w"); while ((c = getc(fr)) != EOF) putc(c, fw); fclose(fr); fclose(fw); return 0; }

  10. V souboru CISLA11.TXT je na každé řádce jedno celé číslo, kterému předchází neznámý počet znaků $. Sečtěte tato čísla a výsledek vypište na obrazovku. #include <stdio.h> int main(void) {FILE *fr; int c, cislo, suma = 0; if ((fr = fopen("CISLA11.TXT", "r")) == NULL) { printf("Soubor CISLA11.TXT se nepodarilo otevrit\n"); return 1; } while (1) { /* cteni uvodnich znaku '$' */ while ((c = getc(fr)) == '$') ; if (c == EOF) break; /* vraceni prvniho znaku cisla zpet do souboru */ ungetc(c, fr); fscanf(fr, "%d\n", &cislo); suma += cislo; } printf("Soucet cisel je: %d\n", suma); if (fclose(fr) == EOF) printf("Soubor CISLA11.TXT se nepodarilo uzavrit\n"); while(!kbhit(); return 0; }

  11. Napište program , který vypisuje přirozenáčísla od 1. Po každých 10-ti vypsaných číslech napíše “Mám pokračovat ? (A/N)” a podle odpovědi buď pokračuje, nebo skončí. #include <stdio.h> int main(void) { int c, i = 1; for ( ; ; ) { /* nekonecny cyklus */ printf("%d\n", i++); if (i % 10 == 0) { printf("Mam pokracovat ? [A / N]: "); c = getchar(); while (getchar() != '\n') ; /* čekání na stisk ENTER */ if (c == 'n' || c == 'N') break; } } while(!kbhit()); return 0; }

More Related