Übungsaufgaben
Zehn Übungen zum Klicken, Rechnen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung; wenn du hängst, helfen dir die gestuften Tipps.
Geben Sie alle Aussagen über Zeichen in Java an, die zutreffen.
'a' und 'A' verschieden. charAt zählt ab 0, liefert also das K. Und 'B' + 1 ist die Zahl 67; zum Zeichen wird sie erst durch (char).char und einer Zahl, entsteht eine Zahl.Wenden Sie das Caesar-Verfahren mit dem Schlüssel k = 4 gedanklich an und entscheiden Sie, welche Aussagen stimmen.
Ordnen Sie jedem Java-Ausdruck seinen Wert zu.
-4 % 26 ist −4. Erst mit + 26 landet man im Bereich 0 bis 25.% mit negativer Zahl bleibt das Minuszeichen erhalten.Das Wort PIXEL wird mit k = 10 verschlüsselt. Stellen Sie die Rechnung für jeden Buchstaben in der Tabelle dar. Buchstaben groß eintragen.
| Zeichen | c − 'A' | + k | % 26 | Ergebnis |
|---|---|---|---|---|
| P | ||||
| I | 8 | 18 | ||
| X | ||||
| E | 4 | 14 | ||
| L | 21 | 21 |
PIXEL wird zu ZSHOV. Nur beim X greift der Rest: 33 % 26 = 7. P mit 25 landet genau auf Z — noch kein Umlauf.% 26 kleiner.Beim Vigenère-Verfahren wiederholt sich das Schlüsselwort über den Klartext. Implementieren Sie die Methode für Klartexte aus Großbuchstaben, indem Sie die Lücken füllen — vier Bausteine bleiben übrig.
static String vigenere(String klar, String schluessel) {
String geheim = "";
for (int i = 0; i < klar.length(); i++) {
int k = schluessel.charAt(i schluessel.) - ;
geheim = geheim + ((klar.charAt(i) - 'A' + k) % + 'A');
}
return geheim;
}
i % schluessel.length() läuft 0, 1, …, m − 1, 0, 1, … — so wiederholt sich das Schlüsselwort. - 'A' macht aus dem Schlüsselbuchstaben eine Verschiebung von 0 bis 25. Mit / statt % bekäme man die Nummer der Wiederholung, nicht die Position im Schlüssel.Berechnen Sie Schritt für Schritt den Geheimtext von SONNE mit dem Vigenère-Schlüsselwort KI — mit der Methode aus A5 und dem Verfahren aus 7.1.2.
-
Verschiebung
kan Positioni = 2 - Geheimtextbuchstabe an Position 0
- Geheimtextbuchstabe an Position 3
- ganzer Geheimtext
2 % 2 = 0, Schlüsselbuchstabe K → 10. S (18) + 10 = 28 → 2 → C; O (14) + I (8) = 22 → W; N + K = 23 → X; N + I = 21 → V; E (4) + K = 14 → O. Ergebnis CWXVO: Die beiden N werden verschieden verschlüsselt — genau das unterscheidet Vigenère von Caesar.Die Methode soll einen Caesar-Geheimtext aus Großbuchstaben entschlüsseln. Überprüfen Sie sie: Markieren Sie die drei fehlerhaften Zeilen und schreiben Sie die korrekte Zeile hinein.
<= greift charAt auf den Index g.length() zu — StringIndexOutOfBoundsException. Zeile 5: Ohne + 26 wird der Rest negativ, aus A wird bei k = 3 das Zeichen '>'. Zeile 8: Zurückgegeben werden muss die ganze Zeichenkette, nicht das letzte Zeichen — return c; würde gar nicht übersetzen, weil der Rückgabetyp String ist.length() - 1. Und was ergibt (0 - 3) % 26?Statt eines einzelnen Zeichens soll ein ganzes Schlüsselwort per XOR wirken — wie beim Vigenère-Verfahren wiederholt. Erweitern Sie die XOR-Methode entsprechend und geben Sie an, wie entschlüsselt wird.
static String xorMitWort(String text, String wort) {
String erg = "";
for (int i = 0; i < text.length(); i++) {
char s = wort.charAt();
erg = erg + (text.charAt(i) s);
}
return erg;
}
// Entschlüsseln: klar = ;
i % wort.length() im Kreis. ^ ist das bitweise XOR; das Ergebnis ist ein int und muss mit (char) zurückverwandelt werden. Weil \(c \oplus s \oplus s = c\) gilt, entschlüsselt dieselbe Methode mit demselben Schlüsselwort — ein eigenes entschluesseln ist überflüssig. Achtung: Das Ergebnis enthält oft nicht druckbare Zeichen.Eine fehlerhafte Implementierung entschlüsselt mit (c - 'A' - k) % 26 — ohne + 26. Die Verschlüsselung ist korrekt. Analysieren Sie für jeden Rundreise-Test entschluesseln(verschluesseln(t, k), k).equals(t), ob er den Fehler aufdeckt.
k, und beim Entschlüsseln entsteht ein negativer Rest. Bei „ZZ“, „Y“, „OK“ (O + 13 = 27) und „ABC“ (B + 25 = 26) passiert das; bei „HALLO“ mit k = 1 und „XA“ mit k = 2 gerade nicht. Deshalb braucht ein guter Test Buchstaben am Ende des Alphabets und große Schlüssel.c - 'A' - k negativ? Nur wenn die verschlüsselte Nummer kleiner als k ist.Ein Schüler verschlüsselt seinen Text „zur Sicherheit“ zweimal: erst mit k = 20, dann das Ergebnis mit k = 10. Ermitteln Sie den einzelnen Schlüssel zwischen 0 und 25, der genau dasselbe Ergebnis liefert.
