i

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.

Black-box-Diagramm verschluesselung[1]

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

Suche

v
110.2.11.1.1.3
inf-schule.de/fp_elm_alteversion/elm_programme/funktionenalsdaten/verschluesselung/lernstrecke/verallgemeinerung
inf-schule.de/110.2.11.1.1.3
inf-schule.de/@/page/jTywjZ8Bqfk6WOTq

Rückmeldung geben