{{indexmenu_n>4}}{{indexmenu_n>4}}
======== HW 04 - Četnost výskytu znaků ========
^ Povinné zadání | 3b kontrola [[courses:b0b36prp:resources:tessun:start|Coding Stylu]]|
^ Volitelné zadání | není |
^ Bonusové zadání | není |
^ Počet uploadů | 10 |
^ Podpůrné soubory | {{:courses:b0b36prp:hw:b0b36prp-hw04.zip|}} |
Tato úloha slouží k procvičení práce s polem, kontrole načítání vstupu a práci se znakovými literály. Zájemci mohou využit funkce z knihovny ''ctype.h'' jako jsou ''isalpha()'', ''isspace()'' nebo ''tolower()''.
======= Povinné zadání =======
* Program ze standardního vstupu načtěte text (větu) znak po znaku (např. funkcí ''getchar()'' a vypíše počty výskytu písmen abecedy 'a'--'z' a 'A'--'Z', přičemž nerozlišuje malá a velká písmena, viz níže uvedené příklady.
* Vstupní text (věta) může obsahovat mezery a může být zakončena tečkou '.'
* V případě, že vstupní text obsahuje jiné znaky, program končí návratovou hodnotou ''100'' vypíše na standardní chybový výstup zprávu: "''Chyba vstupu!''".
* V případě, že výskyt některého písmene překročí počet 9, program končí návratovou hodnotou ''101'' a vypíše na ''stderr'' chybové hlášení ''Error: Prilis mnoho stejnych znaku!''.
* V obou případech chybového výstupu je text zakončen znakem nového řádku ''\n''.
* V případě chyby, první výskyt chyby ukončuje program.
* V případě úspěšného zpracování vstupu vrací program hodnotu ''0''.
* Četnost výskytu znaku je vypsána na dvou řádcích zakončených znakem nového řádku. Před každým znakem je mezera.
a b c d e f g h i j k l m n o p q r s t u v w x y z
3 0 1 1 2 0 1 1 1 0 1 1 1 0 0 0 0 4 1 4 2 0 0 0 1 0
==== Příklad 1 - pub01 ====
^ Vstupní hodnoty (stdin) ^ Výstup (stdout) ^ Chybový výstup (stderr) ^ Návratová hodnota ^
|
The quick Elijah drives bright garden.
|
a b c d e f g h i j k l m n o p q r s t u v w x y z
2 1 1 2 4 0 2 3 4 1 1 1 0 1 0 0 1 3 1 2 1 1 0 0 0 0
| žádný | 0 |
==== Příklad 2 - pub-e1 ====
^ Vstupní hodnoty (stdin) ^ Výstup (stdout) ^ Chybový výstup (stderr) ^ Návratová hodnota ^
|
The mysterious Evelyn
build the 1st rusty car.
| žádný |
Chyba vstupu!
| 100 |
==== Příklad 3 - pub-e2 ====
^ Vstupní hodnoty (stdin) ^ Výstup (stdout) ^ Chybový výstup (stderr) ^ Návratová hodnota ^
|
The fierce car runs
cooooooooool sparkling river.
| žádný |
Error: Prilis mnoho stejnych znaku!
| 101 |
==== Příklad 4 - pub-e3 ====
^ Vstupní hodnoty (stdin) ^ Výstup (stdout) ^ Chybový výstup (stderr) ^ Návratová hodnota ^
|
The 2nd fierce car runs
cooooooooool sparkling river.
| žádný |
Chyba vstupu!
| 100 |
====== Odevzdání ======
Veřejné příklady + Makefile: {{:courses:b0b36prp:hw:b0b36prp-hw04.zip|}}
^ ^ Povinné zadání ^
^ Název v BRUTE | HW04 |
^ Odevzdávané soubory | main.c |
^ Argumenty při spuštění | žádné |
^ Návratová hodnota | ''0''; \\ ''100''; "Chyba vstupu!" -> stderr\\ ''101''; "Error: Prilis mnoho stejnych znaku!" -> stderr|
^ Kompilace pomocí | clang -pedantic -Wall -Werror -std=c99 -O2 ||
^ Očekávaná časová složitost | $\mathcal{O}(n)$ |
^ Procvičované oblasti | pole |