Hodnocení soutěžních úloh

Kategorie programování mikrořadičů

25. až 27. dubna 2019

Soutěž v programování – 33. ročník

Krajské kolo 2018/2019

Příprava
Horizontální animace textu
Počítání stisků tlačítka
Videostop

Na řešení úloh máte 4 hodiny čistého času.

Před zahájením soutěže vám pořadatel oznámí, kam máte ukládat řešení úloh. Zároveň připravte pro hodnotícího návod, jak uvést vaše zařízení do provozu a napište, které úlohy jste řešili, a jak mezi nimi přepínat. Hodnotící nebude do zařízení nic nahrávat. Jen ho zapne a vyhodnotí úlohy, na kterých jste pracovali. Pokud bude hodnotící požadovat vaši součinnost, jistě ochotně vyhovíte.

Pro řešení můžete použít vývojovou platformu s mikrokontrolérem dle své preference (např. Arduino, Raspberry, ESP8266, FRDM, STM32, micro:bit, PicAxe, BASIC Stamp, AVR, PIC …). Pro řešení úlohy budete dále potřebovat:

Můžete řešit jakékoliv z následujících úloh, ovšem úloha Příprava je povinná a s tou tedy musíte začít. Ostatní můžete řešit v libovolném pořadí. Pokud budete řešit více než jednu úlohu, musíte zároveň implementovat funkci jejich přepínání.

Součástí vaší práce, a tedy i hodnocení, je vytvoření schématu zapojení vašeho mikrořadiče s periferiemi (LCD displej, 4× LED, 4× tlačítko, dvoupólový spínač). Schéma stačí volnou rukou na papír. Realizujte fyzické zapojení tak, že bude zapojeno po jedné LED od každé barvy.

Pro řešení každé úlohy vytvořte vývojový diagram, který zadání řeší na úrovni větvení programu. I vývojový diagram bude součástí hodnocení, ale i ten stačí volnou rukou na papír.

U každé úlohy bude jedním bodem hodnocena přehlednost zdrojového kódu (vhodné členění zdrojového kódu, vhodně zvolené názvy identifikátorů, komentáře na místech kde je to potřeba, atd.).


Příprava

Maximální počet bodů 15

Tato úloha je povinná.

Vytvote program s následující funkcí.

Hodnocení

Body Za co
0 Účastník nedodal správné schéma nebo vývojový diagram, zařízení je nefunkční.
2 Odevzdané schéma je úplné a správné. Pokud schéma není úplně, ale soutěžící alespoň něco odevzdal, dostane 0,5 bodu.
2 Odevzdaný vývojový diagram je úplný a správný. Pokud vývojový diagram není úplný, ale soutěžící alespoň něco odevzdal, dostane 0,5 bodu.
2 Displej je správně inicializovaný.
2 Displej na prvním řádku zobrazuje správný text.
3 Displej na druhém řádku zobrazuje správné znaky.
2 Na displeji bliká kurzor.
1 Program přechází do jiné úlohy (bod se udělí pouze v případě, že účastník řešil více jak jednu úlohu)
1 Dokumentace a přehlednost zdrojového kódu. Tento bod je dělený při dílčím plnění
  • přehledný a odsazovaný zdrojový kód - 0.25 bodu
  • konzistentně a výstižně pojmenované proměnné - 0.25 bodu
  • komentáře, vysvětlující obtížnější části kódu - 0.5 bodu

Horizontální animace textu

Maximální počet bodů je 17,5

Vytvořte program, který bude na LCD displeji zobrazovat posouvajcí se text podle následujících pravidel:

Hodnocení

Body Za co
0 Účastník nedodal vývojový diagram, program je nefunkční.
2 Odevzdaný vývojový diagram je úplný a správný. Pokud vývojový diagram není úplný, ale soutěžící alespoň něco odevzdal, dostane 0,5 bodu.
0,5 Program přechází do programu Horizontální animace textu (body se udělí pouze v případě, že účastník řešil více jak jednu úlohu).
1 Program staticky zobrazuje text na prvním řádku.
1 Program staticky zobrazuje text na druhém řádku.
2 Program zajišťuje posouvání textu, ale nesplňuje zcela zadání.
5 Program zajišťuje posouvání textu při plném splnění zadání.
2 Při zobrazení textu na prvním řádku svítí zelená ledka.
2 Při zobrazení textu na druhém řádku svítí žlutá ledka.
1 Program přechází do jiné úlohy (bod se udělí pouze v případě, že účastník řešil více jak jednu úlohu).
1 Dokumentace a přehlednost zdrojového kódu. Tento bod je dělený při dílčím plnění
  • přehledný a odsazovaný zdrojový kód - 0.25 bodu
  • konzistentně a výstižně pojmenované proměnné - 0.25 bodu
  • komentáře, vysvětlující obtížnější části kódu - 0.5 bodu

Počítání stisků tlačítka

Maximální počet bodů je 21,5

Vytvořte program, který bude realizovat následující funkci:

Hodnocení

Body Za co
0 Účastník nedodal vývojový diagram, program je nefunkční.
2 Odevzdaný vývojový diagram je úplný a správný. Pokud vývojový diagram není úplný, ale soutěžící alespoň něco odevzdal, dostane 0,5 bodu.
0,5 Program přechází do programu Počítání stisků tlačítka (body se udělí pouze v případě, že účastník řešil více jak jednu úlohu).
1 Program registruje a přičte stisk tlačítka.
1 Zákmity tlačítka jsou ošetřeny s použitím přerušení.
2 Registrace stisku po uplynutí 5 sekund expiruje.
5 Program na LCD displeji zobrazuje text Počet platných stisků xx.
2 Svítí žlutá ledka, pokud není platný žádný stisk.
2 Svítí zelená ledka, pokud je platný jeden stisk.
2 Svítí modrá ledka, pokud jsou platné dva stisky.
2 Svítí červená ledka, pokud jsou platné tři a více stisků.
1 Program přechází do jiné úlohy (bod se udělí pouze v případě, že účastník řešil více jak jednu úlohu).
1 Dokumentace a přehlednost zdrojového kódu. Tento bod je dělený při dílčím plnění
  • přehledný a odsazovaný zdrojový kód - 0.25 bodu
  • konzistentně a výstižně pojmenované proměnné - 0.25 bodu
  • komentáře, vysvětlující obtížnější části kódu - 0.5 bodu

Videostop

Maximální počet bodů je 15,5

Vytvořte program, který bude umožňovat hraní hry Videostop.

Hodnocení

Body Za co
0 Účastník nedodal vývojový diagram, program je nefunkční.
2 Odevzdaný vývojový diagram je úplný a správný. Pokud vývojový diagram není úplný, ale soutěžící alespoň něco odevzdal, dostane 0,5 bodu.
0,5 Program přechází do programu Videostop (body se udělí pouze v případě, že účastník řešil více jak jednu úlohu).
1 Program generuje 4 náhodně vybrané znaky.
1 Znaky se mění po 0,5s.
2 Program správně vyhodnocuje stisknuté tlačítko.
2 Program správně zobrazuje počet bodů.
2 Program měří a zobrazuje čas do konce.
1 Při úspěšné odpovědi svítí zelená ledka.
1 Při nesprávné odpovědi svítí červená ledka.
1 Při vypršení času svítí žlutá ledka.
1 Program přechází do jiné úlohy (bod se udělí pouze v případě, že účastník řešil více jak jednu úlohu).
1 Dokumentace a přehlednost zdrojového kódu. Tento bod je dělený při dílčím plnění
  • přehledný a odsazovaný zdrojový kód - 0.25 bodu
  • konzistentně a výstižně pojmenované proměnné - 0.25 bodu
  • komentáře, vysvětlující obtížnější části kódu - 0.5 bodu