http://vitas.matfyz.cz/cv/contest/navod.html
Tyto stránky slouží k procvičení programovaní v (borland) Pascalu. Naleznete zde jednoduché úložky různých obtížností. Výhodou je, že své spravnost výsledků si můžete i zkontrolovat.
Zadání úloh je navrženo tak, aby program četl ze standardního vstupu a řešení vypisoval na standardní výstup. Program řeší při jednom spuštění vícero zadání. Vstupy i výstupy jsou definovány poměrně jednoznačně. Díky tomu je možné (více či méně) ověřit správnost programu tím, zda na vzorový vstup odpovídá váš program stejně jako vzorový program.
Vstup je většinou "více ulohový", tedy váš program musí řešit více instancí zadaného problému. Každý řádek je jedním zádáním. Záčíná číslem zadání (a dvojtečkou) následuje opravdové zadání příkladu. Poslední zadání ma číslo 0.
Přiklad: Vybere největší přirozené číslo, ze tří. Vzorový vstup pak bude vypadat nasledovně:
9: 97 66 82 8: 54 75 67 7: 92 46 62 6: 63 74 30 5: 70 69 94 4: 6 33 64 3: 8 44 6 2: 63 23 40 1: 31 3 62 0: 70 60 96
Váš program by měl vygenerovat:
9: 97 8: 75 7: 92 6: 74 5: 94 4: 64 3: 44 2: 63 1: 62 0: 96
Takovýto typ příkladu můžete číst například pomoci této konstrukce:
var { cislo zadani } N: Integer; { dvojtecka } dt: Char; begin repeat read(N, dt); { načtení jednoho vstupu a řešení } until N = 0; end. |
Procvičování úloh pak může vypadat takto: přečte si zadání příkladu
test
, vyřešíte, implementujete, odladíte. Stáhnete si vzorový
vstup test.in
a vzorový výstup test.out
.
spustíte svůj program na vzorový vstup
test.exe < test.in > test.my
porovnáte test.my
a test.out
. Pokud budou stejné,
je velká pravděpodobnost, že jste odvedli dobrou práci. V případě, že
nebudete schopni s úlohou hnout, můžete se nechat inspirovat vzorovým řešením
test.pas
.
Porovnávat soubory
může pomocí jednoduché (až prostoduché) utilitky
sdiff.pas
,
která se používá následovně:
sdiff.exe test.my test.out
výsledkem je buď prohlášení, že oba soubory jsou shodné,
případně vytiskne první řádek kde se liší.
Je možné, že v příkladech budou chyby (nejednoznačné či nejasné zadání, nekorektní vstup, špatně vzorově vyřešený příklad). Pokud na takovou chybku narazíte rozhodně si ji nenechávejte pro sebe a ihned pošlete "bugreport" (vitas@popelka.ms.mff.cuni.cz).
Tímto způsobem testování se nedají odhalit uplně všechny zaludnosti, a možné chyby programu. Nicméně pravděpodobnost, že jste postupovali správně je při shodném výsledku vysoká. Co však tento systém neodhalí je "časová složitost" (u některých příkladů je uvedena a pak záleží pouze na vašem svědomí, zda-li je vaše řešení je optimální).
http://vitas.matfyz.cz/cv/contest/navod.html