i

Mehrfachauswahl mit einem Musterabgleich

Eine tagesabhängige Preisgestaltung betrachten

Nach einer Erhebung hängt die Auslastung des Freibads sehr stark vom Wochentag ab. Die neue Preisgestaltung soll für eine gleichmäßigere Auslastung sorgen.

Eintrittspreise:
Kinder unter 10 Jahren zahlen keinen Eintritt.
Der Grundpreis ab 10 Jahren beträgt (bis 3 Stunden):
MO, DI, MI: 4 €
DO, FR    : 5 €
SA, SO    : 6 €
Zuzahlung (ab 3 Stunden):
Die Zuzahlung ab 10 Jahre beträgt für jede angefangene Stunde 1 €.

Aufgabe 1

Hier eine Implementierung des Grundpreises ab 10 Jahre mit Hilfe geschachtelter Fallunterscheidungen. Ergänze sie um einen weiteren Tag. Achte darauf, dass im letzten else-Zweig eine Zahl steht (die nicht unbedingt für alle restlichen Tage stimmen muss).

grundpreisAb10: String -> Float
grundpreisAb10 tag =
    if (tag == "MO") then
        4
    else
        if (tag == "DI") then
            4
        else
            ...

Aufgabe 2

Mit einem case-Ausdruck kann man eine tiefe Verschachtelung vermeiden, sofern nur bestimmte Musterwerte abgetestet werden. Beacte, dass der Fall _ -> 0 alle vorher nicht abgedeckten Musterwerte umfasst.

grundpreisAb10: String -> Float
grundpreisAb10 tag =
    case tag of
        "MO" -> 4
        "DI" -> 4
        "MI" -> 4
        "DO" -> 5
        "FR" -> 5
        "SA" -> 6
        "SO" -> 6
        _ -> 0

Teste diese Funktionsdefinition in der REPL. Teste dabei auch unsinnige Tagesangaben.

Aufgabe 3

Ergänze Funktionen zur vollständigen Implementierung des oben beschriebenen Preismodells.

module Eintrittspreis exposing (..)

grundpreisAb10: String -> Float
grundpreisAb10 tag =
    case tag of
        "MO" -> 4
        "DI" -> 4
        "MI" -> 4
        "DO" -> 5
        "FR" -> 5
        "SA" -> 6
        "SO" -> 6
        _ -> 0

grundpreis: ...	
grundpreis alter tag =
    ...

zuzahlung: ...
zuzahlung alter stunden =
    ...

eintrittspreis: ...
eintrittspreis alter tag stunden =
    ...

Suche

v
110.2.6.1.1.3
inf-schule.de/fp_elm_alteversion/elm_programme/fallunterscheidungen/eintrittspreis/lernstrecke/version3
inf-schule.de/110.2.6.1.1.3
inf-schule.de/@/page/KF1yGNqwLDAdPa6E

Rückmeldung geben