Úložky

Za vyřešení následujících úložek získáte body do celkového hodnocení soutěže o velké ceny. Plný počet uvedených bodů získá optimální řešení, ostatní řešení mohou získat bodů méně. Úložky můžete řešit v libovolném pořadí. Řešení odevzdávejte v písemné podobě každý den mezi 22.00 a 22.30.

XML schémata

5 bodů, odevzdejte Jirkovi do pondělí

Napište webovou aplikaci pro bezpečné čtení formátovaného textu v XHTML z webového formuláře (textarea). Aplikace bude odolná proti běžným cross-site scripting (XSS) útokům. Uživateli umožní vkládání odstavců, odkazů, tučného písma, kurzívy a zalomení řádku.

Notová osnova

8 bodů, odevzdejte Markovi do středy

Napište program, který dostane jako vstup libovolný obrázek ve formátu bmp, jpg nebo png a detekuje v něm notové osnovy. Výstupem programu by měl být vstupní obrázek s jasně zvýrazněnými notovými osnovami.

Nutnou podmínkou je i očíslování notových osnov tak jak se mají hrát. Notová osnova je tvořena pěti linkami, které jsou stejně daleko od sebe. Začátek a konec notové osnovy může být ohraničený taktovou čarou.

Zkušební soubory najdete na sdíleném disku v adresáři \\192.168.2.8\lsp2009\noty.

Výška stromu

3 body, odevzdejte Ondrovi do čtvrtka

Napište program, který vypočítá výšku binárního stromu zakódovaného dle kódování zmíněného na přednášce. Vstupem programu bude řetězec znaků 0 nebo 1 kódující binární strom, výstupem má být výška tohoto stromu. Např. 001011 kóduje strom výšky 2.

Hledání stromu v džungli

5 bodů, odevzdejte Ondrovi do čtvrtka

Navrhněte a implementujte algoritmus, který dle kódování binárních stromů zmíněného na přednášce nalezte největší Fibonacciho strom v džungli (řetězci) nul a jedniček.

Fibonacciho strom F0 je prázdný strom, F1 je strom obsahující pouze kořen bez potomků. Každý další Fn je kořen, který jako svůj levý podstrom má strom Fn-1 a jako svůj pravý podstrom má strom Fn-2:

Vstupem programu bude řetězec znaků 0 nebo 1. Výstupem má být číslo I - index nejvyššího Fibonacciho stromu nalezeného v řetězci.

Např. v džungli 011100001101100111000110110100 je nejvyšším Fibonacciho stromem F4, v džungli 1111100000 je nejvyšší Fibonacciho strom F0.

Řetězy

6 bodů, odevzdejte Ondrovi do čtvrtka

Napište program, který dostane na vstupu dvě slova stejné délky a na výstup vypíše nejkratší posloupnost přechodu z prvního zadaného slova na druhé, případně zjistí, že taková posloupnost neexistuje. Dvě sousední slova této posloupnosti se přitom liší o právě jedno písmeno. Program bude pracovat se slovy délky 5 znaků. Slovník dostane v textovém souboru, na každém řádku jedno slovo.

Např. pro vstup jirka kosek může (dle dodaného slovníku) na výstup dát posloupnost jirka -> jarka -> marka -> marea -> marek -> morek -> korek -> kosek.

Fraktály

4 body, odevzdejte Markovi do soboty 14.30

Vymyslete předpis pro co nejzajímavější L-system. Hodnotit se bude důmyslnost a vzhled řešení.

Jako generátor můžete využít například webovou službu nebo vlastní generátor. Výsledky bude hodnotit odborná porota.