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

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

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

Podobné prezentace


Prezentace na téma: "Příklady v jazyku C – část 4"— Transkript prezentace:

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

2 Vytvořte textový soubor ZNAKY. TXT, ve kterém budou náhodné znaky
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 0; system("PAUSE");

3 Vytvořte editorem soubor pismena
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"); 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
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
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"); 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
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
Č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
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 #include <stdio.h> int main() { FILE *fr, *fw; int c;
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
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;


Stáhnout ppt "Příklady v jazyku C – část 4"

Podobné prezentace


Reklamy Google