{{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 |