Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 204. feladat (2009. január)

I. 204. 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:

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ó.

(10 pont)

A beküldési határidő 2009. február 16-án LEJÁRT.


A feladat megoldása az alábbi FreePascal környezetben készült, érthetően kommentezett programból nyomon követhető (i204.pas).

A megoldásokat a mellékelt tömörített állományban található bemenetekkel teszteltük, emellett a kapott a kimeneteket is közreadjuk. (teszt.zip).


Statisztika:

14 dolgozat érkezett.
10 pontot kapott:Englert Péter, Fehér Péter, Kővágó Zoltán.
9 pontot kapott:Barta 111 János, Erdős Gergely, Jákli Gábor, Tóth Szabolcs.
8 pontot kapott:1 versenyző.
7 pontot kapott:1 versenyző.
6 pontot kapott:1 versenyző.
5 pontot kapott:3 versenyző.
3 pontot kapott:1 versenyző.

A KöMaL 2009. januári informatika feladatai