Neues bildunabhängiges Textbeispiel. Dieser Text wurde eigenständig für informatik-abi.de erstellt und ersetzt die fehlende Abbildung. Er rekonstruiert weder deren unbekannten Inhalt noch eine fremde Programmvorlage.
Für die Bearbeitung maßgeblich: Verwende die vollständigen Daten dieser Ergänzung und den lokalen Editor unter (IV). Die nachfolgende ältere Problemstellung bleibt als historischer Lernkontext erhalten; ihre unvollständigen Daten und abweichenden Ergebnisse gelten nicht für die neue Variante.
Vollständige Daten der eigenen Wortvariante: Klaralphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ; Geheimalphabet DEFGHIJKLMNOPQRSTUVWXYZABC. Ein Buchstabe wird durch das Zeichen an derselben Position im Geheimalphabet ersetzt. "CODE" wird "FRGH"; "AZ AZ" wird "DC DC". Leerzeichen bleiben erhalten. Andere Zeichen, etwa Kleinbuchstaben oder Satzzeichen, ergeben für den ganzen Text None. Die leere Eingabe bleibt leer.
Der lokale Editor nutzt verschluessle_text(text) und genau diese vollständigen Alphabete. Der historische Ausschnitt A → A, B → D und das alte Beispiel WILLI → TBCCB gehören zu einer anderen, nicht vollständig verfügbaren Zuordnung und werden hier nicht vorausgesetzt. Python zählt Stringpositionen ab 0: Bei "HEINZ" ist Index 1 das "E", Index 2 das "I". Das einfache Verschlüsselungsmodell ist kein Schutz für echte Geheimnisse.
Suchen: Verschlüsselung von Wörtern
|
|
Abbildung durch die Textfassung am Seitenanfang ersetzt. |
(I) Problemstellung
Mit der Aufgabenstellung aus "L2_3.1.2 Arbeitsauftrag Verschlüsselung Buchstabe.docx" wurde be-reits eine Lösung zur Verschlüsselung einzelner Großbuchstaben erarbeitet.
Es soll nun möglich sein, nicht nur einzelne Buchstaben, sondern ganze Wörter zu verschlüsseln.
Dazu wurden die Buchstaben des Alphabets im Array alphabet_klar und die Buchstaben für die Verschlüsselung im Array alphabet_geheim erfasst.
| Klartext: | A | B | C | D | E | F | usw. | Array: alphabet_klar |
|---|---|---|---|---|---|---|---|---|
| verschlüsselter Text: | A | D | Z | V | P | H | usw. | Array: alphabet_geheimr |
In einer Variablen text_klar mit String-Inhalt kann mit der Anweisung text_klar[i] das i.te Element ausgewählt werden.
| Hinweis: | text_klar = "HEINZ" teilstring_text_klar[2] ➜ teilstring erhält den Wert "E" |
Verwenden Sie für die Implementierung Ihrer Lösung die Datei L2_4_4_vorlage_verschluesselung _wort.html, die Ihnen im Ordner Aufgaben/Vorlagen in digitaler Form vorliegt.
Speichern Sie Ihre Lösung in Ihrem Ergebnisordner unter dem Namen
L2_4_4_verschluesselung_wort.py.
(II) Problemanalyse
| Bedeutung | Typ/Struktur | Variable/Größe |
|---|---|---|
(II) Struktogramm
Die Arrays alphabet_klar und alphabet_geheim sind bereits implementiert!
Erstellen Sie hier das Struktogramm
(IV) Programmcode (Python-Code)
Hier können Sie den Code interaktiv testen und ausführen:
Wörter Zeichen für Zeichen verschlüsseln
Noch nicht begonnen
Aufgabenstellung
Lokale Übung zum gleichen Lernziel. Neu und eigenständig zum Lernziel verfasst; keine Rekonstruktion oder Übernahme einer fremden Vorlage. Eigene klare Wortvariante mit vollständigem neuen Alphabet, definierter Leerzeichenbehandlung und definiertem Fehlerfall.
Eigenständige lokale Übungsvariante. Der frühere Fremdcode liegt nicht vor. Diese Aufgabe verwendet eigene, vollständig beschriebene Daten und den folgenden Codevertrag; Angaben im älteren Material sind nicht automatisch Testdaten dieses Editors.
Die eigenständige Variante verwendet vollständig KLAR = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ") und GEHEIM = list("DEFGHIJKLMNOPQRSTUVWXYZABC"). verschluessle_text(text) ersetzt jeden Großbuchstaben A bis Z über denselben Index im Geheimalphabet. Leerzeichen bleiben an ihrer Position. Falls irgendein anderes Zeichen vorkommt, liefere für die gesamte Eingabe None; keine Teilverschlüsselung zurückgeben.
Eigene Beispiele: "CODE" wird "FRGH", "AZ AZ" wird "DC DC". Die leere Eingabe ergibt "". Die Listen bleiben unverändert. Suche für jeden Buchstaben linear und hänge das Ergebniszeichen an. Dieses einfache Modell schützt keine echten Geheimnisse.
Fachliche Selbstkontrolle: Eine äußere Schleife durchläuft den Text; für jeden Buchstaben sucht eine innere Schleife die gemeinsame Alphabetposition. Die automatischen Tests prüfen das Ergebnis beziehungsweise das vereinbarte Protokoll, nicht die Algorithmuswahl im Quelltext. Erkläre deine Schleifen zusätzlich anhand eines kleinen Beispiels.
Ausgabe bzw. Vorschau
2 Tipps anzeigen
- Beginne mit einem leeren Ergebnistext und verarbeite den Eingabetext von links nach rechts. Leerzeichen benötigen keinen Alphabetindex.
- Setze gefunden für jeden neuen Buchstaben zurück. Brich die innere Suche beim Treffer ab; ohne Treffer ist die gesamte Eingabe ungültig.
Lösung anzeigen
KLAR = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
GEHEIM = list("DEFGHIJKLMNOPQRSTUVWXYZABC")
def verschluessle_text(text):
ergebnis = ""
for zeichen in text:
if zeichen == " ":
ergebnis += " "
continue
gefunden = False
for i in range(len(KLAR)):
if KLAR[i] == zeichen:
ergebnis += GEHEIM[i]
gefunden = True
break
if not gefunden:
return None
return ergebnis
Hinweise:
- Schreiben Sie Ihre Antworten direkt in die Textfelder und speichern Sie sie.
- Sie können den interaktiven Python-Editor verwenden, um den Code zu testen und Ihre Ergebnisse zu überprüfen.