Praktické úložky

Od 19. do 28. ročníku jsme v KSPčku na odevzdávání praktických úloh používali systém jménem CodEx. Dnes se již nepoužívá, ale pro úplnost zde zanecháváme návod k jeho použití.

Poprvé v poslední sérii 19. ročníku jsme uvedli do tehdy zcela teoretického semináře i jednu praktickou úložku. Její vyhodnocování má na starosti systém CodEx, který se také používá pro opravování praktických domácích úkolů z programování. Setká se s ním každý student prvního ročníku na naší fakultě.

Systém CodEx pro odevzdávání úloh KSP sídlí na adrese https://codex3.ms.mff.cuni.cz/codex-ksp/. Přihlašovací jméno a heslo do CodExu je vám vygenerováno spolu s registrací do submitovátka. Je stejné jako heslo do submitovátka, není-li v zaslaném informačním e-mailu řečeno jinak. Pokud nemáte zřízený účet v submitovátku, musíte se nejprve zaregistrovat.

Pomocí CodExu se odevzdávají i řešení úloh každoroční soutěže Kasiopea. CodEx pro Kasiopeu sídlí na jiné adrese a registrace do něj probíhá odlišně, podrobnosti naleznete na stránce Kasiopey. Jinak se ale vlastnosti CodExu pro úlohy Kasiopey a KSP nikterak neliší.

Na rozdíl od běžných úložek není potřeba k praktické úloze sepisovat jakýkoli popis nebo vysvětlení vašeho řešení. Jediným vašim cílem je odladit funkční program, který bude přesně odpovídat specifikaci v zadání.

Zdrojový kód tohoto programu pak odevzdáte prostřednictvím webového rozhraní CodExu, kde za něj rovnou obdržíte body. Pokud vám CodEx žádné body nedá, nedostanete je ani od nás, takže věnujte zvýšenou pozornost tomu, co vám CodEx odpověděl. Na odevzdání máte víc pokusů (konkrétní množství se dozvíte přímo v CodExu) a do hodnocení se vám pak bude počítat nejlepší pokus (maximum získaných bodů).

Častou začátečnickou chybou, za kterou se bohužel uděluje nula bodů, je nedodržení formátu vstupu a výstupu. Můžete se bezvýhradně spolehnout, že vstup bude splňovat popis v úloze, a vy zase musíte do posledního písmenka dodržet výstup. Dejte si pozor zvláště na přebývající mezery (nejen) na konci řádku nebo chybějící znak konce řádku na konci celého výstupu (který tam být obvykle musí).

K řešení praktické úložky můžete používat jazyky Pascal, C, C++, C# a Python. Jiné jazyky bohužel CodEx neumí. Při psaní si dávejte pozor, abyste nepoužívali knihovny a techniky, které jsou závislé na vašem kompilátoru nebo platformě a které nejsou garantované normou použitého jazyka (např. pascalisté nesmí používat unitu Crt, naopak programátoři v C++ můžou použít knihovny STL).

Přehled chybových hlášek

Často se stane, že výsledek hned napoprvé nebude na sto procent. V tomto případě se hodí zjistit podrobnosti o tom, jak si váš program vedl. U každého testu zvlášť uvidíte jeden z těchto popisků:

Compilation error
Program se nepodařilo správně přeložit.
No output file
Pravděpodobně máte chybu v názvu výstupního souboru nebo jej vůbec nevytváříte.
Wrong answer
Program vydal nesprávný výsledek.
Time limit exceeded
Program překročil daný časový limit. Může být způsobeno zacyklením, neefektivním algoritmem, apod.
Caught fatal signal 8
Nastala chyba při matematické operaci, například dělení nulou.
Caught fatal signal 9
Byla provedena nepovolená operace, například systémové volání.
Caught fatal signal 11
Program porušil ochranu paměti. Tato chyba může nastat při překročení paměťového limitu, při přistupování k paměti, kterou nemáte alokovanou, apod.

Pro vyčerpávající přehled vlastností CodExu vás odkážeme na uživatelskou příručku. Také nás můžete ohledě CodExu kontaktovat na naší e-mailové adrese nebo na diskusním fóru.

CodEx bývá během prázdnin odstaven, ale začátkem září je již obvykle možné úložky odevzdávat.