3144 Polycryp Polyalplhabetische Ersetzungsmethode
Kategorie:Mathematik
Klasse:leicht
Eingabe:siehe Spezifikation
Ausgabe:siehe Spezifikation
Abzugebende Files: Polycryp.txt, Polycryp.java, *.java , 1117.txt, 249.txt

Kurzbeschreibung:

Ein String wird mittels polyalphabetischer Ersetzungsmethode verschlüsselt.

Allgemeine Hinweise:

Aufgabenstellung:

Ihr Programm soll ein Schlüsselwort und den zu verschlüsselnden String einlesen. Dieser wird wie folgt verschlüsselt:

Jedem Buchstaben des Schlüsselwortes wird eine Zahl zugeordnet, die angibt, wie weit der Buchstabe des zu verschlüsselnden Strings verschoben werden soll:
A->0, B->1, ... , Z->25

Um die Nachricht zu verschlüsseln, schreibt man den Schlüssel (wiederholt) über den unverschlüsselten Text, z.B.

MIRAKULIXMIRAKULIXMI (Schlüssel)
ALLERANFANGISTSCHWER (unverschlüsselter Text)
MTCEBUYNXZQZSDMNPTQZ (verschlüsselter Text)

Den verschlüsselten Text erhält man, indem man jedes Zeichen des unverschlüsselten Textes so weit im Alphabet (nach hinten) verschiebt, wie der Buchstabe des Schlüsselwortes angibt. Wenn man dabei über das Z kommt, dann wird wieder bei A fortgesetzt.

Eingabedaten:

Lesen Sie den Schlüssel als String ein. Dieser darf nur aus Buchstaben bestehen, wobei Groß- und Kleinbuchstaben gleich zu behandeln sind. Die maximale Länge des Schlüssels ist 15 Zeichen.

Danach wird der zu verschlüsselnde Text eingelesen. Dieser darf nur aus Buchstaben bestehen, wobei wiederum Groß- und Kleinbuchstaben gleich zu behandeln sind. Außerdem dürfen Unterstreichungszeichen ("_") im String vorkommen; diese Zeichen sind vor der Verschlüsselung zu entfernen. Der String darf nicht länger als 30 zu verschlüsselnde Zeichen sein.

Ausgabedaten:

Bei korrekten Eingabedaten soll Ihr Programm den verschlüsselten String in Großbuchstaben ausgeben, gefolgt von einem Zeilenvorschub.

Fehlerbehandlung:

Genügen die eingelesenen Daten nicht den Bedingungen, so geben Sie die Meldung "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub aus.

Lesen Sie aber auf jeden Fall beide Strings ein, auch wenn schon beim ersten ein Fehler auftritt.

Beispiele:

Eingabedaten
ABC Hallo

Ausgabedaten
HBNLP


Testen:

Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:

java Polycryp < Polycryp.i1 > Polycryp.out1

Das erzeugte File Polycryp.out1 können Sie dann mit dem mitgelieferten Outputfile Polycryp.o1 vergleichen.