i

Übungen

Aufgabe 1

Manchmal muss man eine natürliche Zahl in ihre Bestandteile zerlegen. Hierfür kann man die folgenden Funktionen benutzen.

einer: Int -> Int
einer zahl =
    modBy 10 zahl

zehner: Int -> Int
zehner zahl =
    (modBy 100 zahl) // 10

hunderter: Int -> Int
hunderter zahl =
    ...

(a) Erstelle ein Modul mit diesen Funktionen und teste das Modul.

(b) Nutze das Modul, um dreistellige natürliche Zahlen so darzustellen:

237 -> "2H3Z7E"
45 -> "0H4Z5E"

Modelliere hierzu zunächst eine geeignete Funktion und entwickle anschließend eine Funktionsdefinition (die die Funktionen aus dem vorab entwickelten Modul verwendet).

Hinweis: Int-Zahlen kann man mit der vordefinierten Funktion String.fromInt in Zeichenketten umwandeln.

> String.fromInt 2
"2" : String

(c) (etwas schwieriger) Nutze das passend erweiterte Modul, um eine Funktion zu entwickeln, mit der man vierstellige Jahreszahlen in vereinfachte römische Zahldarstellungen umzuwandeln kann. Als Vereinfachung erlauben wir, mehrere gleiche Zahlzeichen zu verwenden. Hier einige Beispiele:

2023 -> "MMXXIII"
2029 -> "MMXXIIIIIIIII"
1994 -> "MCCCCCCCCCXXXXXXXXXIIII"

Hinweis: Mehrere identische Zeichen kann man mit der vordefinierten Funktion String.repeat generieren.

> String.repeat 4 "X"
"XXXX" : String

Suche

v
110.2.5.2
inf-schule.de/fp_elm_alteversion/elm_programme/module/uebungen
inf-schule.de/110.2.5.2
inf-schule.de/@/page/6hqjaU7HUM8ySZ69

Rückmeldung geben