Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1/1
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á".
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 }