Následující úlohy můžete řešit v libovolném pořadí. Body získané za každou úlohu se násobí koeficientem, který je u každé úlohy uveden a vyjadřuje její obtížnost. Za jednu úlohu můžete získat maximálně 10 bodů (před násobením koeficentem); z toho je 6 bodů určeno na ohodnocení funkčnosti, 3 body na efektivitu řešení a zbývající jeden bod slouží k ohodnocení dokumentace a přehlednosti odevzadaného zdrojového textu programu. Na řešení úloh máte 4 hodiny čistého času.
Napiště program, který bude sloužit k hledání cesty bludištěm. Program bude mít jeden parametr, kterým bude jméno textového souboru s popisem bludiště.
Bludiště bude uloženo v obyčejném textovém souboru. Znakem mezera (kód 32) budou vyznačeny chodby a znakem s kódem 177 budou vyznačeny zdi. V souboru s popisem bludiště budou kromě chodeb a zdí umístěny dvě značky, které budou označovat začátek a konec bludiště. Na místě začátku bude písmeno 'Z' a na konci bludiště 'K'.
Maximální rozměry bludiště jsou 80 x 25 znaků.
Program v zadaném bludišti musí nalézt nejkratší cestu mezi body Z a K a vyznačit ji. Cesta přitom může vést pouze chodbami. Procházení zdí nebo obcházení bludiště není dovoleno.
Ukázková bludiště jsou uložena v souborech blud1.txt, blud2.txt, blud3.txt a blud4.txt v adresáři BLUDISTE. V tomto adresáři je rovněž ukázkový program.
Koeficient: 3
Napište program, který zobrazí obsah libovolného soubor o maximální velikosti 32kB v hexadecimálním kódu. Zároveň bude zobrazovat pozici v souboru a odpovídající znaky. Řídící znaky (s kódem 0-31) budou zobrazeny jako tečka. Název souboru se zadá jako parametr programu na příkazové řádce. K posunu prohlíženého souboru o jednu řádku slouží ENTER a k posunu o celou obrazovku mezerník. Kromě toho je možné se po souboru pohybovat kurzorovými klávesami a klávesami PgUp a PgDn v obvyklém významu. Klávesou ESC se program ukončí.
Program je rovněž možno napsat tak, že kódy jednotlivých znaků budou zobrazovány v desítkové místo šestnáctkové soustavě. V tomto případě však ztratíte 10 % bodů.
V adresáři HEXVIEW je ukázkový program.
Koeficient: 1
V souborech OBRAZ0.XXX, OBRAZ1.XXX, OBRAZ2.XXX
v adresáři OBRAZ jsou ulozeny černobílé obrázky na nichž jsou namalovány
křížky a kolečka. Křížky a kolečka se nepřekrývají ani se nedotýkají okraje
obrazovky. Obrazovka byla do souboru ulozena procedurou pis
:
procedure pis; type radek=array[0..325] of byte; var i:integer; r:radek; F:file of radek; begin; assign(f,'OBRAZ.xxx');rewrite(f); for i:=0 to 479 do begin getimage(0,i,639,i,r); write(f,r); end; close(f); end;
Vypracujte program pro zjistění počtu koleček a počtu křížků. Soubor s obrázkem bude programu předán jako parametr z příkazové řádky.
Koeficient: 2