Verallgemeinerung der Verschlüsselungsfunktionen
Die bisher definierten Funktionen analysieren
Im folgenden Quelltext findest du Implementierungen zu den bisher betrachteten Verschlüsselungsfunktionen. Es fällt auf, dass die bisher entwickelten Funktionen nach demselben Muster gestrickt sind.
module Verschluesselung exposing (..)
zuordnung: Char -> Char
zuordnung zeichen =
...
verschiebungCaesar: Char -> Char
verschiebungCaesar zeichen =
...
verschluesselungZuordnung: String -> String
verschluesselungZuordnung text =
String.fromList (List.map zuordnung (String.toList text))
verschluesselungVerschiebungCaesar: String -> String
verschluesselungVerschiebungCaesar text =
String.fromList (List.map verschiebungCaesar (String.toList text))
Aufgabe 1
Beschreibe die Gemeinsamkeiten der Funktionsdefinitionen zu den Verschlüsselungsverfahren.
Eine verallgemeinerte Verschlüsselungsfunktion entwickeln
Interessant wäre, wenn man eine ganz allgemeine Funktion verschluesselung
entwickeln könnte, der man neben dem zu verschlüsselnden Text
eine beliebige Buchstaben-Zuordnungsfunktion zur Verarbeitung übergeben könnte.
In Elm ist das kein Problem. Funktionen können - wie Zahlen oder Zeichenketten - als Daten benutzt werden und somit auch einer anderen Funktion zur Verarbeitung übergeben werden. Die Implementierung ist naheliegend.
module Verschluesselung exposing (..)
zuordnung: Char -> Char
zuordnung zeichen =
...
verschiebungCaesar: Char -> Char
verschiebungCaesar zeichen =
...
verschluesselung: (Char -> Char) -> String -> String
verschluesselung zuordnungsfunktion text =
String.fromList (List.map zuordnungsfunktion (String.toList text))
> verschluesselung verschiebungCaesar "HALLO"
"KDOOR" : String
> verschluesselung zuordnung "HALLO"
"UGDDT" : String
Aufgabe 2
(a) Teste die verallgemeinerte Verschlüsselungsfunktion.
(b) Nutze die verallgemeinerte Verschlüsselungsfunktion, um Vokale (in Texten aus Großbuchstaben) durch andere Vokale zu ersetzen.
ersetzung: Char -> Char
ersetzung zeichen =
case zeichen of
'A' -> 'E'
'E' -> 'I'
'I' -> 'O'
'O' -> 'U'
'U' -> 'A'
_ -> zeichen
Quellen
- [1]: Black-box-Diagramm verschluesselung - Urheber: KB - Lizenz: inf-schule.de