Čtěte prosím tuto stránku celou a pozorně.
Napište program, který pomocí mřížky dešifruje zadaný text. Mřížka velikosti N je čtvercový papír, který je rozdělen na NxN políček. Některá políčka jsou vystřižena.
Před dešifrováním se text musí uspořádat do čtvercových bloků velikosti mřížky. Vstupní zašifrovaný text programu bude mít vždy takovou velikost, aby počet znaků byl násobkem NxN. Dešifrování probíhá po jednotlivých blocích. Mřížka se postupně přikládá na blok textu a po každém přiložení se po řádcích přečtou znaky ve vystřižených políčkách. Po přečtení znaků se mřížka pootočí o pravý úhel PO směru hodinových ručiček a opět se čtou znaky, které jsou vidět ve vystřižených políčkách. Mřížka je zkonstruována tak, aby po čtvrtém čtení znaků už byly přečteny všechny znaky z daného bloku. Pokračuje se dalším blokem.
Příklad:
Mřížka (1 představuje vystřižené políčko)
1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0Zašifrovaný text:
AMIE FBGC JNKO PDHLSprávný text po dešifrování by měl být
ABCDEFGHIJKLMNOP
.
Program bude mít na vstupu dva soubory: mrizka.txt
a vstup.txt
.
Vstupní soubor mrizka.txt
má na prvním řádku číslo odpovídající délce hrany mřížky. Toto číslo je vždy sudé, označme jej N
. Následuje N
řádek, na každém řádku je N
binárních číslic. Jednotlivé číslice jsou odděleny mezerou. (Je to stejné jako ve výše uvedeném příkladu.)
Vstupní soubor vstup.txt
obsahuje zašifrovaný text, každý řádek má délku hrany mřížky. Počet řádků je násobkem délky hrany mřížky.
Výstupní soubor vystup.txt
musí obsahovat dešifrovaný text. Rozdělení textu na řádky je libovolné.
Ukázkové vstupní a výstupní soubory si můžete stáhnout zde: data.tar.gz, nebo zde: data.zip.
Soubory ve formátu .tar
lze rozbalit například Total Commanderem, nebo pomocí programu tar.exe
příkazem "C:\>tar.exe xvf data.tar
". Více informací o použití programu tar
najdete zde.
V souborech data.tar.gz a data.zip najdete také ukázkové programy pro načítání a zapisování dat do souboru. Zapisování do souboru je podobné tisku na obrazovku. Načítání ze souboru je podobné načítání dat z klávesnice.
hruska
(zavináč) popelka
(tečka) ms
(tečka) mff
(tečka) cuni
(tečka) cz
s předmětem zprávy PGM - mrizka
a s přiloženým souborem mrizka.pas
..exe
soubory.
Termín zadání: 25.10.2005.
Termín odevzdání: do 6.11.2005 včetně.
Termín odevzdání oprav: do 13.11.2005 včetně.
hruska
(zavináč) popelka
(tečka) ms
(tečka) mff
(tečka) cuni
(tečka) cz