Stránka 1 z 1

Zápočet 18.1.2018

Napsal: 19. 1. 2018 00:52
od Speedding
Měli jsme napsat velmi zjednodušený interpret programovacího jazyka Logo.

Plátno má velikost 500x500, přetečení se řeší tak, že se nastaví min/max hodnota. Kurzor začíná v bodě 0,0 ve směru doprava, tzn. že směr doprava = úhel 0°.

Mělo to umět následující příkazy.

penup - po zadání tohoto příkazu se nebude kreslit nic
pendown - po zadání tohoto příkazu se bude kreslit vše
right <int degrees> - otočí kurzor doprava o daný počet stupňů
forward <int distance> - posune kurzor o danou vzdálenost v nastaveném směru, vzdálenost může být i záporná, pokud je nastavený mód pendown tak nakresli čáru
repeat <int repetitions> { - něco jako for, blok příkazu se zopakuje repetitions-krát, přičemž to má podporovat i vnořené příkazy (lze jednoduše vyřešit zásobníkem)
<command 1>
...
<command n>
}

A to je vlastně všechno, výpis se řešil v svg formátu do html souboru. Limit 3 hodiny, dalo se to stihnout za 1,5 - 2 hodiny. Když vyřešíte, jak vhodně naparsovat vstup, tak pak už je to triviální.

Dostali jsme 3 testovací vstupy a odpovídající výstupy, "zkoušející" pak chtěl demonstrovat funkčnost programu na dalších 2 trochu komplexnějších vstupech, které nám při kontrolování dal přes flashku. Nevím, jak u ostatních, ale u mě trochu i zkoumal kód a na něco se ptal, takže rozhodně není dobrý nápad psát zápočtové testy bez jakýchkoliv objektů.