Cílem miniúkolů je poskytnout vám, studentům, sbírku jednoduchých příkladů, na kterých si můžete vyzkoušet základní koncepty prezentované na přednášce. Náročností jsou obvykle na úrovni příkladů ze cvičení.
Tyto úkoly nejsou hodnocené ani povinné. Můžete si je vypracovat kdykoliv.
Informace
Popis adresářové struktury
Každá sada obsahuje kořenový CMakeLists.txt
, který můžete otevřít ve svém
oblíbeném IDE. Dále zde naleznete adresáře s příklady.
Adresáře s příklady obsahují následující soubory:
-
CMakeLists.txt
-
source.c
— soubor se zadáním, vaše řešení pište zde -
solution.c
— vzorové řešení
Navíc tyto adresáře obsahují testovací sady. Každá testovací sada s názvem
NAME
je definována alespoň jedním z těchto souborů:
NAME.in
|
standardní vstup; pokud neexistuje, pak je vstup prázdný |
NAME.out
|
očekávaný standardní výstup; pokud neexistuje, pak nesmí program na výstup vypsat nic |
NAME.err
|
očekávaný chybový výstup; pokud neexistuje, pak nesmí program na chybový výstup vypsat nic |
NAME.args
|
parametry pro program, na každém řádku jeden |
Automatické testování (Aisa)
Pokud úkol vypracujete na stroji Aisa, můžete na testování použít
skript test-miniukol
, který zkontroluje vaše řešení proti dodaným testovacím sadám.
Pokud jste v adresáři s řešením (hledá se soubor source.c
), pak zavolejte skript
aisa$ /home/kontr/test-miniukol
který sám nalezne všechny sady v aktuálním pracovním adresáři a spustí je. Skript má také další vlastnosti, vyzkoušejte:
aisa$ /home/kontr/test-miniukol --help
aisa$ /home/kontr/test-miniukol --diff NazevSady
Manuální testování (Linux)
Úkoly můžete vypracovat v libovolném pořadí. Pokud si nějaký úkol vyberete, můžete jej vypracovat následujícím způsobem:
-
nejdříve otevřete
source.c
vybraného příkladu a přečtěte si zadání, -
podívejte se na příklady vstupů a argumentů v souborech
.in
a `.args`, -
zkuste řešení vypracovat podle zadání.
Na systému Linux (např. Aise) můžete testovat sadu následujícím způsobem:
-
sada bez vstupu a argumentů
program >stdout 2>stderr # pokud existuje SADA.out: diff -U0 SADA.out stdout # pokud existuje SADA.err: diff -U0 SADA.err stderr
-
sada se vstupem
program <SADA.in >stdout 2>stderr # ...
-
sada s argumenty
xargs -a SADA.args -d'\n' program >stdout 2>stderr # ...
-
ostatní kombinace snad jednoduše odvodíte z výše uvedených příkladů