Dein Fortschritt:
0 / 0 Aufgaben
1
Geheimschrift
AFB I–IIFür eine Schnitzeljagd werden Botschaften aus Großbuchstaben verschlüsselt, indem jeder Buchstabe um k Stellen im Alphabet verschoben wird; nach Z geht es mit A weiter. Die abgebildete Methode verwendet dazu die Zeichencodes aus Kapitel 1.
Material: Methode verschiebe
static String verschiebe(String s, int k) {
if (s.length() == 0) {
return "";
}
char c = s.charAt(0);
char neu = (char) ('A' + (c - 'A' + k) % 26);
return neu + verschiebe(s.substring(1), k);
}- Beschreiben Sie, wie die Methode eine Zeichenkette rekursiv verarbeitet, und erläutern Sie die Zeile, in der
neuberechnet wird. 4 BE - Wenden Sie die Methode auf
verschiebe("ZEBRA", 3)an. Geben Sie die Aufrufe und das Ergebnis an. 4 BE - Erweitern Sie die Methode so, dass Leerzeichen unverändert übernommen werden. 4 BE
- Schätzen Sie ab, wie viele Zeichen durch
substringinsgesamt kopiert werden, wenn eine Botschaft mit 1000 Buchstaben verschlüsselt wird, und nennen Sie eine Möglichkeit, das zu vermeiden. 3 BE
Insgesamt 15 BE
Hinweise
Hinweis zu Aufgabe a)
Unterscheiden Sie Abbruchbedingung, Bearbeitung des ersten Zeichens und Selbstaufruf. Rechnen Sie die Zeile für c = 'Z' und k = 3 aus.
Hinweis zu Aufgabe b)
Jeder Aufruf erzeugt genau einen Buchstaben des Ergebnisses.
Hinweis zu Aufgabe c)
Das Leerzeichen hat keinen Platz im Alphabet — es braucht einen eigenen Fall.
Hinweis zu Aufgabe d)
Der erste Rest hat 999 Zeichen, der nächste 998 …
