s n h m r u
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.
<button class="schalter" schalterref="refID1">Hilfe</button>
<div class="versteckt" id="refID1">
    <p>
        Du kannst nicht die Funktion <code>String.map</code> verwenden,
        da sie eine Funktion erwartet, die ein Char in ein Char umwandelt.
        Die Funktion <code>charToMorse</code> wandelt aber ein Char in einen String um.
    </p>
    <p>
        Du musst deshalb die Zeichenkette in eine Liste von Zeichen umwandeln.
        Das geht mit der Funktion <code>String.toList</code>.
        Anschlie&szlig;end kannst du die Liste der Zeichen
        mit der Funktion <code>List.map</code> in eine Liste von Morsezeichen umwandeln.
        Schlie&szlig;lich kannst du die Liste der Morsezeichen
        mit der Funktion <code>String.join</code> zu einer Zeichenkette zusammenf&uuml;gen
        und dabei ein Leerzeichen als Trennzeichen verwenden.
    </p>
</div>

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