Zadani pisemky

(22.5.2007)

Na vstupu mate trojice cisel, oddelovac je carka, to cele je ve hranatych zavorkach. Kazda trojice je na vlastnim radku, napr.:

[1,1,18]
[2,17,199]
...
...

Prvni 2 cisla jsou x,y souradnice ASCII art obrazku. Pokud pro dany bod souradnice neexistuje, je to automaticky mezera. Levy horni roh ma souradnici 0,0. Treti cislo je dekadicka reprezentace znaku dle ASCII. Souradnice jsou setridene podle y a x (tj. obrazek je sniman po radcich, od horniho leveho rohu az k dolnimu pravemu). Tabelatory neuvazujte.

Ukolem je na terminal vykreslit obrazek a zaramovat ho. Zaramovani se mysli pouziti znaku '+' pro rohy a '-' nebo '|' pro horizontalni, respektive vertikalni lajny. Na vsech stranach musi byt volne misto sirky jedne mezery. Testovaci vstup mate k dispozici. Priklad vystupu:

+-------------------------------------------------------+
|                      __                               |
|                     /' )                              |
|                   /'   (                          ,   |
|               __/'     )                        .' `; |
|       _.-~~~~'          ``---..__             .'   ;  |
|  _.--'  b)                       ``--...____.'   .'   |
| (     _.      )).      `-._                     <     |
|  `\|\|\|\|)-.....___.-     `-.         __...--'-.'.   |
|    `---......____...---`.___.'----... .'         `.;  |
|                                     `-`           `   |
+-------------------------------------------------------+

Hints

Co se vam muze hodit:

$ printf \\73
;
$ echo 'obase=8; 59' | bc
73

Omezeni

Pokud nestihnete behem cviceni...

Dodelejte doma. Budu po vas ale uz navic chtit i skript, ktery z ASCII art vstupu vygeneruje dane souradnice. Souradice pro mezery negenerujte. Plati stejna omezeni. Otestujte na ruznych obrazcich, staci ve vyhledavaci zadat "ASCII art". Samozrejme postaci i libovolny jiny soubor.

Oba skripty mi poslete mailem, dam vam vzdy vedet kdy se k tomu asi dostanu, nepocitejte ze mi skript poslete v utery vecer a ze ve stredu rano pujdete ke zkousce - to se muze stat, ale take nemusi. Jakmile zapocet uznam, dam to do systemu a Libor Forst vam to pak zapise pri zkousce, abyste za mnou nemuseli chodit.

Hints

Je to vice 'tricky' nez se zda, tohle se vam muze hodit:

# porovnejte kdyz nepouzijete '-r'. Bez toho byste meli problemy zpracovat
# soubor obsahujici zpetna lomitka
$ echo '\' | while read -r i; do echo $i; done

# i printf(1) umi znakove konstanty jako printf(3)
$ printf '%d' "'-'"
45