i

Morsecode berechnen

Morsecode automatisch erzeugen

Bisher hast du den Text MORSEN und den entsprechenden Morsecode -- --- ·-· ··· · ·- manuell in die REPL eingegeben. Der Morsecode soll aber natürlich automatisch berechnet werden.

Dazu benötigst du eine Funktion, die den Text in Morsecode umwandelt. Gegeben ist eine Funktion charToMorse, die ein einzelnes Zeichen in Morsecode umwandelt. Du musst die interne Struktur der Funktion nicht verstehen, vermutlich ist sie aber dennoch nachvollziehbar, auch wenn du case-Ausdrücke noch nicht kennst.

charToMorse : Char -> String
charToMorse c =
    case c of
        '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' -> "--··"
        _ -> " "

Aufgabe 1

Teste die Funktion charToMorse in der REPL.

Aufgabe 2

Ergänze eine Funktion stringToMorse, die eine Zeichenkette in Morsecode umwandelt.

Du kannst nicht die Funktion String.map verwenden, da sie eine Funktion erwartet, die ein Char in ein Char umwandelt. Die Funktion charToMorse wandelt aber ein Char in einen String um.

Du musst deshalb die Zeichenkette in eine Liste von Zeichen umwandeln. Das geht mit der Funktion String.toList. Anschließend kannst du die Liste der Zeichen mit der Funktion List.map in eine Liste von Morsezeichen umwandeln. Schließlich kannst du die Liste der Morsezeichen mit der Funktion String.join zu einer Zeichenkette zusammenfügen und dabei ein Leerzeichen als Trennzeichen verwenden.

Anschließend kannst du die Funktion stringToMorse nutzen, um den Text MORSEN in Morsecode umzuwandeln, z.B.:

main =
    div []
        [ text "MORSEN"
        , text " "
        , text (stringToMorse "MORSEN")
        ]

Aufgabe 3

Passe dein bisheriges Programm so an, dass es z.B. den Text MORSEN und den entsprechenden Morsecode anzeigt.

Suche

v
8.2.3.2.4 Morsecode berechnen
Kopieren durch Anklicken

Rückmeldung geben