Implementierung des Verschiebeverfahrens

Verarbeitung von Zeichenketten

Ziel ist es, eine Funktion zum Verschlüsseln von Texten nach dem Verschiebeverfahren zu implementieren.

<Black-Box-Diagramm><Funktionsname>verschluesselterText</Funktionsname><Übergaben><Übergabe><Wert>'SALVEASTERIX'</Wert><Variable>klartext</Variable><Typ>str</Typ></Übergabe><Übergabe><Wert>'D'</Wert><Variable>schluessel</Variable><Typ>str</Typ></Übergabe></Übergaben><Rückgabe><Typ>str</Typ><Wert>'VDOYHDVWHULA'</Wert></Rückgabe></Black-Box-Diagramm>

Wir benutzen den bereits entwickelten Algorithmus zum Verschiebeverfahren.

ALGORITHMUS verschluesselterText:
Übergabe: klartext, schluessel
neuerText = ''
für alle Zeichen c in klartext:
für alle Zeichen c in klartext:
    ermittle mit dem schluessel das zu c verschobene Zeichen d 
    füge d am Ende an die von neuerText verwaltete Zeichenkette an
Rückgabe: neuerText

Zudem benutzen wir die bereits implementierte Funktion verschluesseltesZeichen.

Hier eine naheliegende Implementierung.

def verschluesselterText(klartext, schluessel):
    geheimtext = ''
    for zeichen in klartext:
        neuesZeichen = verschluesseltesZeichen(zeichen, schluessel)
        geheimtext = geheimtext + neuesZeichen
    return geheimtext

Aufgabe 1

Teste diese Implementierung mit verschiedenen Daten. Erläutere alle Anweisungen der Funktionsdefinition.

Aufgabe 2

Entwickle analog eine Funktion zum Entschlüsseln von Texten, die mit dem Verschiebeverfahren verschlüsselt wurden.

Aufgabe 3

Wir sind bisher davon ausgegangen, dass ein vorgegebener Text nur aus Großbuchstaben besteht. Einen beliebigen Text müsste man erst einmal in einen Text aus Großbuchstaben umwandeln, um das Verschlüsselungsverfahren anwenden zu können. Wir gehen dabei nach folgendem Verfahren vor:

Alle Kleinbuchstaben werden in entsprechende Großbuchstaben umgewandelt. Alle Umlaute und das ß werden durch Kleinbuchstaben ersetzt. (z.B.: ä -> ae; ß -> ss). Alle Leerzeichen und alle Sonderzeichen werden weggelassen.

Entwickle eine Funktion, die das leistet. Beschreibe zunächst das Verhalten mit einem Black-Box-Diagramm. Entwickle und teste dann eine Funktionsdefinition.

X

Fehler melden

X

Suche