i

Verschlüsselung mit einer Zuordnung

Eine Zuordnung festlegen

Wir betrachten als Beispiel die folgende Zuordnung:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
| | | | | | | | | | | | | | | | | | | | | | | | | |
G K X C S L Z U A H W D B M T Y E N J V P O I R F Q

Hier Implementierung in Elm könnte so erfolgen:

module Verschluesselung exposing (..)

zuordnung: Char -> Char
zuordnung zeichen =
    case zeichen of
        'A' -> 'G'
        'B' -> 'K'
        'C' -> 'X'
        'D' -> 'C'
        'E' -> 'S'
        'F' -> 'L'
        'G' -> 'Z'
        'H' -> 'U'
        'I' -> 'A'
        'J' -> 'H'
        'K' -> 'W'
        'L' -> 'D'
        'M' -> 'B'
        'N' -> 'M'
        'O' -> 'T'
        'P' -> 'Y'
        'Q' -> 'E'
        'R' -> 'N'
        'S' -> 'J'
        'T' -> 'V'
        'U' -> 'P'
        'V' -> 'O'
        'W' -> 'I'
        'X' -> 'R'
        'Y' -> 'F'
        'Z' -> 'Q'
        _ -> '?'
> import Verschluesselung exposing (..)

> zuordnung 'A'
'G' : Char
> zuordnung 'H'
'U' : Char

Aufgabe 1

Teste die Implementierung und erläutere alle Details in der Implementierung.

Die Zuordnung auf Texte anwenden

Wenn man ganze Texte (aus Großbuchstaben) verschlüsseln möchte, dann ist es günstig, sie in Listen aus Zeichen umzuwandeln. Elm stellt hierzu die passenden vordefinierten Funktionen zur Verfügung.

> String.toList "HALLO"
['H','A','L','L','O'] : List Char
> String.fromList ['H','A','L','L','O']
"HALLO" : String

Die Verschlüsselung eines Textes - als Liste von Zeichen - lässt sich jetzt leicht mit dem map-Operator durchführen.

Aufgabe 2

(a) Ergänze den Aufruf des map-Operators im unten gezeigten REPL-Dialog. Verwende die bereits definierte Funktion zuordnung.

module Verschluesselung exposing (..)

zuordnung: Char -> Char
zuordnung zeichen =
    ...
> import Verschluesselung exposing (..)

> textAlsListe = ['H','A','L','L','O'] 
['H','A','L','L','O'] : List Char
> List.map ...
['U','G','D','D','T'] : List Char

(b) Entwickle eine Funktion verschluesselungZuordnung, die den Aufruf des map-Operators mit den oben gezeigten Umwandlungsfunktionen kombiniert.

module Verschluesselung exposing (..)

zuordnung: Char -> Char
zuordnung zeichen =
    ...

verschluesselungZuordnung: String -> String
verschluesselungZuordnung text = 
    ...
> import Verschluesselung exposing (..)

> verschluesselungZuordnung "HALLO"
"UGDDT" : String

Suche

v
100.110.2.11.1.1.1
inf-schule.de/entwuerfe/fp_elm_alteversion/elm_programme/funktionenalsdaten/verschluesselung/lernstrecke/zuordnung
inf-schule.de/100.110.2.11.1.1.1
inf-schule.de/@/page/pyZE2oby7DwWJx8k

Rückmeldung geben