Zadanie č. 1: Karel the Robot Library
Znenie zadania
Vytvorte knižnicu v jazyku C pre tvorbu programov v programovacom jazyku Karel. V rámci knižnice vytvorte všetky funkcie, ktoré sú definované na stránke API (bez nutnosti implemenovať funkciu setStepDelay()).
Všeobecné informácie
Odovzdane zadanie prejde kontrolou originality, ktorá sa uskutoční voči aktuálne vypracovaným zadaniam ako aj zadaniam z minulých rokov. Pokiaľ sa zistí, že študent odovzdal kópiu iného riešenia, nesplní základnú podmienku získania zápočtu a ten mu nebude udelený (bez možnosti opätovného pokusu odovzdať zadanie). Pokiaľ odovzdané zadanie bude vlastné iba čiastočne, zadanie nebude akceptované, študent bude mať ešte jeden pokus dopracovať zadanie , ale jeho hodnotenie bude penalizované -5 bodmi.
Toto zadanie je zamerané na overenie znalostí z nasledujúcich oblastí:
- práca s poľom,
- čítanie a zapisovanie do textových súborov,
- údajové štruktúry, a
- modulárne programovanie.
Požiadavky pre úspešné odovzdanie zadania
- projekt musí byť odovzdaný včas pomocou LMS Moodle v správnom formáte (viď nižšie)
- knižnica musí obsahovať implementáciu všetkých príkazov, ktoré sú uvedené na stránke API
- funkcia turnOn() musí vedieť načítať svet robota Karla v dohodnutom formáte
- počas prekladu nemôže dôjsť ku žiadnemu varovaniu (warning) a ani ku žiadnej chybe (error)
-
projekt sa bude prekladať prekladačom gcc pomocou nasledovných prepínačov:
$ gcc -std=gnu99 -Werror -pedantic
Štruktúra balíčka na odovzdanie
Zadanie sa odovzdáva formou zip balíčku, pričom jeho názov bude reprezentovaný jedinečným identifikátorom študenta s rokom odovzdavania v tvare: ROK_AB123CD.zip. Zip balíček bude obsahovať nasledujúcu štruktúru priečinkov:
- src/ - priečinok, v ktorom sa budú nachádzať zdrojové kódy, resp. celý projekt uložený vo vývojovom prostredí NetBeans
- doc/ - priečinok, v ktorom sa bude nachádzať dokumentácia ku zadaniu (viď nižšie) buď v samostatnom súbore documentation.pdf alebo vo forme vygenerovaného priečinku html/ z programu doxygen.
-
readme.txt - súbor, v ktorom budú uvedené informácie o autorovi:
NAME : NAME SURNAME STUDENT ID : ab123cd E-MAIL : name@student.tuke.sk YEAR : 9999
Dokumentácia
Dokumentácia ku zadaniu predstavuje jeden dokument vo formáte .pdf alebo priečinok html/ vygenerovaný ako výstup z vhodného nástroja, napr. Doxygen. Dokumentácia sa skladá z týchto častí:
- Titulná strana
- Znenie zadania
- Dodefinovanie zadania - uviesť obmedzujúce podmienky riešenia, ako napr. maximálna výška a šírka svet a pod.
- Návrh riešenia úlohy - návrh vlastných údajových štruktúr, enumeračných typov a nových typov - spôsob reprezentácie objektov problémovej oblasti
-
Použitie programu - krátky opis použitia vášho programu pri preklade a spúšťaní
- vytvoriť návod pre použitie programu (t.j. ako možno program preložiť, s akými parametrami je možné program spustiť),
- zoznam chybových správ (napr. ak sa Karel pokúsi vziať značku z miesta, na ktorom žiadna značka nie je)
-
Záver
- zhodnotenie riešenia
- možnosti využitia a rozšírenia v súvislosti s existujúcimi obmedzeniami riešenia
- Príloha: Referenčná dokumentácia - pozostáva z dokumentácie všetkých vytvorených funkcií, údajových štruktúr, vlastných typov, enumeračných typov a globálnych premenných. Pre vytvorenie je vhodné pouziť automatizovaný nástroj (napr. Doxygen), ktorý dokumentáciu automaticky generuje z komentárov. Využiť môžete predpripravený konfiguračný súbor Doxyfile. Doxygen je možné spustiť aj na serveri omega.tuke.sk z príkazového riadku príkazom doxygen.