Feladat: I.204 Korcsoport: - Nehézségi fok: -
Füzet: 2009/január, 39. oldal  PDF  |  MathML 
Témakör(ök): Feladat

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Múlt havi számunkban, az I. 201. feladatban szerepelt a Cardano-féle rács, amely szövegek titkosítására alkalmas. Készítsünk programot, amely egy megadott rács segítségével titkosít egy megadott szöveget, azaz létrehozza a szöveg betűinek rács által mutatott elrendezését.
A program a rács elrendezését a parancssor első argumentumaként megadott szöveges fájlból olvassa. A fájl egy N×N-es rács esetén N sort tartalmaz, és minden sorában a rács kezdő állása mellett azokban a cellákban, amely alatt látni lehet a betűket egy kis ,,o'' betű található, a többi helyen egy ,,.'' pont. A program a még titkosítatlan szöveget a parancssor második argumentumaként megadott szöveges állományból olvassa. A fájl a magyar ABC kis- és nagybetűi mellett szóközöket, valamint a szokásos írásjeleket tartalmazza, és egy vagy több sorból áll. A program kimenete a parancssor harmadik argumentumaként megadott szöveges állomány, amely N×N-es betűnégyzeteket tartalmaz, melyek egymástól egy-egy üres sorral vannak elválasztva.
A titkosítás a szöveg elejétől kezdődik, és egymás után hozza létre az N×N-es betűnégyzeteket. A betűnégyzetek csak az eredeti szöveg betűit tartalmazzák (mindegyiket nagybetűssé alakítva), a szóközöket, újsor karaktereket és az egyéb írásjeleket nem. A titkosítás könnyen megfejthető, ha a szöveg karaktereinek elfogyása esetén az utolsó betűnégyzet nem teljes, csak bizonyos részein tartalmaz betűket. Ennek elkerüléséhez az utolsó betűnégyzetet úgy kell elkészíteni, hogy a szöveg végéhez hozzáillesztünk a szöveg elejétől annyi betűt, hogy a négyzet teljes legyen.
Példa:

 

Első fájl (a rács)  Második fájl (a szöveg)Harmadik fájl (a titkos)  .o.o  Nem mondhatom el senkinekONNE  ..o.ADME  ...oHTLM  ....OSMEEMKKMNIDEMHNOANT

 

Beküldendő a program forráskódja (i204.pas, i204.cpp, ...), valamint a program rövid dokumentációja (i204.txt, i204.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.