MINT üben

Ein Verfahren implementieren

Zwei Abituraufgaben mit Hinweisen und Erwartungshorizont: Caesar sauber implementieren und testen, XOR analysieren und beurteilen.

Dein Fortschritt:
0 / 0 Aufgaben
1

Caesar für den Klassenchat

AFB I–II

Fü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 Caesar
public 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;
}
  1. Beschreiben Sie, wie die Methode den Buchstaben 'V' mit dem Schlüssel k = 9 verschlüsselt. Geben Sie alle Zwischenwerte an. 3 BE
  2. Implementieren Sie die Methode entschluesseln(geheim: Zeichenkette, k: Ganzzahl): Zeichenkette. Sie soll für jeden Schlüssel k ≥ 0 korrekt arbeiten, auch für k ≥ 26. 5 BE
  3. 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
  4. Erweitern Sie verschluesseln so, dass auch Kleinbuchstaben verschoben werden — und zwar innerhalb der Kleinbuchstaben. Geben Sie die Ausgabe für verschluesseln("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'.