Ein Verschlüsselungsprogramm
Verallgemeinerung eines Programms zur Caesar-Verschlüsselung
Das folgende Programm verschlüsselt Texte nach der Caesar-Methode. Ziel ist es, das Programm so zu verallgemeinern, dass man es zur Verschlüsselung mit der Verschiebemethode (mit beliebigen Verschiebezahlen) benutzen kann.
text = 'Alles Käse!'
print(text)
textNeu = ''
for zeichen in text:
if ord(zeichen) >= ord('A') and ord(zeichen) <= ord('Z'):
# zeichen ist ein Großbuchstabe
textNeu = textNeu + zeichen
elif ord(zeichen) >= ord('a') and ord(zeichen) <= ord('z'):
# zeichen ist ein Kleinbuchstabe
neuesZeichen = chr(ord(zeichen)-32)
textNeu = textNeu + neuesZeichen
elif zeichen == 'Ä' or zeichen == 'ä':
textNeu = textNeu + 'AE'
elif zeichen == 'Ö' or zeichen == 'ö':
textNeu = textNeu + 'OE'
elif zeichen == 'Ü' or zeichen == 'ü':
textNeu = textNeu + 'UE'
elif zeichen == 'ß':
textNeu = textNeu + 'SS'
klartext = textNeu
print(klartext)
geheimtext = ''
for zeichen in klartext:
zahl = ord(zeichen)
neuezahl = zahl + 3
if neuezahl > ord('Z'):
neuezahl = neuezahl - 26
neuesZeichen = chr(neuezahl)
geheimtext = geheimtext + neuesZeichen
print(geheimtext)
klartext = ''
for zeichen in geheimtext:
zahl = ord(zeichen)
neuezahl = zahl - 3
if neuezahl < ord('A'):
neuezahl = neuezahl + 26
neuesZeichen = chr(neuezahl)
klartext = klartext + neuesZeichen
print(klartext)
Aufgabe 1
Ändere das Programm so ab, dass man es zur Verschlüsselung mit beliebigen Verschiebezahlen benutzen kann.
Zerlegung in Verarbeitungseinheiten
Das oben gezeigte Programm ist bereits recht umfangreich. Wenn man sich intensiv damit auseinandergesetzt hat, kann man es noch recht gut überblicken.
Wenn Programme aber weiter wachsen - z.B. auf mehrere Millionen Programmzeilen -, dann kann keiner mehr alle Details eines Programms überblicken. Man benötigt dann Verfahren, um das Ganze in übersichtliche Programmeinheiten zu zerlegen.
Aufgabe 2
Zerlege das oben gezeigte Programm zur Caesar-Verschlüsselung (bzw. das abgeänderte Programm zur Verschlüsselung mit dem Verschiebeverfahren) in sinnvolle Einheiten. Verdeutliche die Zerlegung durch Kommentare.