Násobilka formátovaný tisk (2015)
Zadání: Napište program na tisk malé násobilky, tak aby
tvořila tabulku v níž stejné řády čísel budou pod sebou.
Funkce
main bude v souboru maintab.c.
Tabulku nejprve tiskněte na konzolu. Pokud bude mít program argument
na příkazové řádce, otevře se soubor s tímto názvem a tabulka se
vytiskne do něj. Nebude-li argument, dojde k tisku na konzolu
(realizujte stejnou funkcí jako v případě otevřeného souboru –
použijte stdout).
Upřesnění zadání: Tisk tabulky realizujte tak, aby byly řádky i sloupce čísel zarovnány (stejný řád vždy pod sebou). Tabulka bude mít na prvním řádku a v prvním sloupci násobitele, v tabulce bude na křížení řádku a sloupce výsledek.
T | 1 2 3 4 ... 10
---------------------------------------------------
1 | 1 2 3 4 ... 10
2 | 2 4 6 8 ... 20
. .
.
10 | 10 20 30 40 ... 100
Realizace zadání
0. krok: vytvoření
projektu
Otevřete si prostředí MS VC++ a vytvořte nový
projekt (file/new/projekt) konzolové aplikace.Vytvořte soubor pro
zdrojový kod (název maintab.c).
1. krok: formátovaný tisk tabulky malé
násobilky
naprogramujte vnořený cyklus (dva for-y v sobě)
a vytvořte tabulku malé násobilky tak, že první řádek a sloupec budou
reprezentovat jednotliví součinitelé a v tabulce bude jejich součin.
Tisk proveďte pomocí printf, který nastavíte tak, aby byla tabulka
zarovnaná do sloupců. K tomu aby fungoval printf, bude potřebné
includovat příslušnou knihovnu.
2. krok: název souboru jako parametr programu
Abychom
mohli ukládat data do souboru, musí být známo jeho jméno. Zadání
tohoto jména přímo do programu není příliš vhodné (název je
konstanta, jméno souboru stále stejné). Proto využijeme možnosti
předat název tohoto souboru do programu jako jeho parametr (z
příkazové řádky) – který se stane parametrem funkce main. V
tomto případě je nutné provést kontrolu, zda byl parametr skutečně
zadán. Parametry je (pro případ ladění) možné zadat přímo v
prostředí.
Zjistěte, zda je funkci main předán jako parametr název
souboru. Proveďte jeho otevření a zavření (na konci main).
Například tabulka.exe vystup.txt „vytiskne“ do souboru vystup.txt tabulku násobilky.
3. krok: tisk do souboru
Upravte tisk tak, aby
používal pro tisk funkci fprintf. Touto funkcí je možné tisknout také
na konzolu (monitor), který má předdefinovaný (otevřený) kanál
stdout, který je možné použít (tento kanál ovšem nesmíme po použití
zavřít). V případě, že funkce main nemá jako parametr název souboru,
soubor neotevírejte a proveďte výstup na konzolu pomocí výstupu do
stdout (ten samozřejmě na konci nezavírejte). Jinak jako výstup
použijte soubor.
Pozn.: Nesmí se zapomenout na zavření otevřeného souboru,
protože několikanásobným voláním funkce bez uzavření bychom mohli
vyčerpat počet otevřených souborů, jak ho povoluje systém. Pro
kontrolu lze použít programy testování přidělení zdrojů –
například checker uvedený sekci literatura.
Poslední změna 2018-02-19