Geschachtelte Fallunterscheidungen
Eine kompliziertere Preisgestaltung betrachten
Die Gestaltung der Eintrittspreise wird weiter verfeinert.
Eintrittspreise: Grundpreis (bis 3 Stunden): Kinder unter 10 : 0 € Jugendliche von 10 bis 18 : 3 € Erwachsene über 18 : 5 € Zuzahlung (ab 3 Stunden): Jede weitere angefangene Stunde kostet für Jugendliche und Erwachsene 1 €.
Aufgabe 1
Betrachte zunächst nur die Berechnung des Grundpreises. Die Funktion zur Implementierung des Grundpreises enthält noch Lücken. Ergänze die Funktionsdefinition und teste sie in der REPL - und zwar so, dass alle möglichen Fälle abgedeckt sind.
module Eintrittspreis exposing (..)
grundpreis: Float -> Float
grundpreis alter =
if alter < 10 then ... else if alter <= 18 then ... else ...
> import Eintrittspreis exposing (..)
> grundpreis 6
...
Aufgabe 2
(a) Die Darstellung der Funktionsdefinition lässt sich so abändern. Warum ist diese Darstellung für den Programmierer günstig?
grundpreis alter =
if alter < 10 then
...
else
if alter <= 18 then
...
else
...
(b) Teste auch diese Funktionsdefinition in der REPL. Achte genau auf die Einrückungen.
(c) Die Funktionsdefinitionen zur Funktion grundpreis
verwenden geschachteltete Fallunterscheidungen. Erläutere die Schachtelung.
Aufgabe 3
Die Implementierung des neuen Preismodells ist noch nicht fertig. Ergänze die fehlenden Funktionsdefinitionen.
module Eintrittspreis exposing (..)
grundpreis: Float -> Float
grundpreis alter =
if alter < 10 then
...
else
if alter <= 18 then
...
else
...
zuzahlung: ...
zuzahlung alter stunden =
...
eintrittspreis: ...
eintrittspreis alter stunden =
...