Dein Fortschritt:
0 / 0 Aufgaben
1
Caesar für den Klassenchat
AFB I–IIFür einen Klassenchat soll ein einfaches symmetrisches Verfahren in Java umgesetzt werden. Ein Mitschüler hat bereits die Verschlüsselung programmiert (siehe Kasten). Nachrichten bestehen zunächst aus Großbuchstaben, Ziffern, Leer- und Satzzeichen.
Methode der Klasse
Caesarpublic static String verschluesseln(String klar, int k) {
String geheim = "";
for (int i = 0; i < klar.length(); i++) {
char c = klar.charAt(i);
if (c >= 'A' && c <= 'Z') {
c = (char) ((c - 'A' + k) % 26 + 'A');
}
geheim = geheim + c;
}
return geheim;
}- Beschreiben Sie, wie die Methode den Buchstaben
'V'mit dem Schlüsselk = 9verschlüsselt. Geben Sie alle Zwischenwerte an. 3 BE - Implementieren Sie die Methode
entschluesseln(geheim: Zeichenkette, k: Ganzzahl): Zeichenkette. Sie soll für jeden Schlüsselk ≥ 0korrekt arbeiten, auch fürk ≥ 26. 5 BE - Geben Sie vier Testfälle für die Rundreise
entschluesseln(verschluesseln(t, k), k)an, die verschiedene Fehlerquellen abdecken. Begründen Sie die Auswahl jeweils kurz. 4 BE - Erweitern Sie
verschluesselnso, dass auch Kleinbuchstaben verschoben werden — und zwar innerhalb der Kleinbuchstaben. Geben Sie die Ausgabe fürverschluesseln("Treffen um 8", 3)an. 5 BE
Summe: 17 BE
Hinweise
Hinweis zu Aufgabe a)
Die Zeichen werden wie Zahlen behandelt:
'V' = 86, 'A' = 65.Hinweis zu Aufgabe b)
Rechne mit
- k und sorge dafür, dass der Wert vor % 26 nicht negativ wird. Große Schlüssel vorher mit k % 26 verkleinern.Hinweis zu Aufgabe c)
Denk an Umlauf über Z, Nicht-Buchstaben, den Schlüssel 0 und Schlüssel ab 26.
Hinweis zu Aufgabe d)
Ein zweiter Zweig mit
'a' an Stelle von 'A'.