Formátované vstupy a výstupy
Hlavním cílem této domácí úlohy je opakování základů jazyka C.
1) Na základě zadání vypracujte program, který načte ze souboru data reprezentující pole znaků. Po načtení je orámuje/doplní po obvodu znaky – nahoře a dole znakem ´-´, vlevo a vpravo znakem ´I´ a následně data vytiskne. Jméno souboru s daty je předáno jako parametr na příkazové řádce - překontrolujte zda je skutečně přítomno, nezapomínejte, že otevřený soubor je potřeba po použití uzavřít. Jeden řádek dat vstupního souboru lze načíst jedním příkazem (f)scanf.
2) Upravte/doplňte program z bodu 1) tak, aby jeho výstupem nebyla konzola (obrazovka), ale soubor, jehož název je dán jako parametr na příkazové řádce programu. „Přepnutí“ mezi bodem 1) a 2) proveďte pomocí podmíněného překladu (příkaz #define TISK), tak aby si uživatel zvolil verzi, kterou přeloží. (viz příklad - není součástí DU).
3) Napište funkci, která bude mít jako parametr načtené pole pro
tisk, která vytiskne statistiku přítomných písmen (malé a velké
společně) a číslic (použijte funce isalfa, isdigit, isnumber, ...).
Pro každý znak, který se vyskytne, se vypíše řádek s obsahem: hexa
kód znaku malého, hexa kód znaku velkého, znak malý, znak velky,
počet znaků (malý a velký dohromady), četnost znaků (s přesností na
dvě desetinná místa). Sloupce tabulky budou zarovnány tak aby
příslušné řády byly pod sebou (viz. příklady nasobilka,
cosinus - nejsou
součástí DU). Na závěr vytiskněte prázný řádek a potom zopakujte
tiskové řádky pro tři znaky s nejčastějším výskytem.
Tisk
například:
0x?? 0x?? aA 20
10.3%
0x?? 0x?? bB 1 0.5%
Součástí textu zadání jsou odkazy na kapitoly skript s příslušnou látkou a odkazy na příklady ze cvičení denního kurzu. Práce s MSVC (založení a práce s projektem, předání parametrů na příkazovém řádku) je popsána zde.
Projekt bude obsahovat následující soubory (přesně s těmito názvy.
Odevzdáte pouze tyto tři soubory):
hlavni.cpp - zde bude
funkce main, práce se soubory (kontroly, otevření ...), volání funkcí
...
funkce.cpp - zde budou všechny funkce projektu
funkce.h
- hlavičkový soubor (ošetřený ...) pro zveřejněné funkce ze souboru
funkce.cpp
Text zadání budu doplňovat/upřesňovat na základě vašich dotazů, takže ho průběžně sledujte.
Poslední změna 2013-09-21