Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

1/1

Zdrojové soubory z výuky

Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".

20101022-pocty-znaku-S4.c
   1 /*
   2  * Soubor:  
   3  * Datum:   2010/10/22
   4  * Autor:   Marek Nožka, nozka z@vináč spseol tečka cz
   5  * Licence: GNU/GPL 
   6  * Úloha:   Počet jednotlivých znaků
   7  * Popis:   Počítá počty výskytů alfanumerických znaků 
   8  *          a znázorňuje je v grafu.
   9  */
  10 
  11 #include <stdio.h>
  12 
  13 char upCase(char z)
  14 {
  15     if (z >= 'a' && z <= 'z') {
  16         z = z - ('a' - 'A');
  17     }
  18     return z;
  19 }
  20 
  21 /////////////////////////////////////////////////////
  22 #define PPISMEN 'Z'-'A'+1
  23 /**
  24  * Hlavní program.
  25  */
  26 int main(void)
  27 {
  28     long int pocetZ[PPISMEN];
  29     int znak;
  30     long int nej;
  31 
  32     for (int i = 0; i < PPISMEN; i++) {
  33         pocetZ[i] = 0;
  34     }
  35     while ((znak = getchar()) != EOF) {
  36         znak = upCase(znak);
  37         if (znak >= 'A' && znak <= 'Z') {
  38             pocetZ[znak - 'A']++;
  39         }
  40     }
  41     nej = pocetZ[0];
  42     for (int i = 1; i < PPISMEN; i++) {
  43         if (pocetZ[i] > nej) {
  44             nej = pocetZ[i];
  45         }
  46     }
  47     printf("Nej: %ld\n", nej);
  48     for (int i = 0; i < PPISMEN; i++) {
  49         printf("%c: %6ld\n", i + 'A', pocetZ[i]);
  50     }
  51     return 0;
  52 }
`--> stáhnout

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net