i

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 €.

Wir betrachten zunächst nur die Berechnung des Grundpreises.

grundpreis: Int -> Int
grundpreis alter = 
    if alter < 10 then ... else if alter <= 18 then ... else ...

Aufgabe 1

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.

Geänderte Darstellung

Die Darstellung der Funktionsdefinition lässt sich folgendermaßen abändern.

Variante 1

grundpreis alter =
    if alter < 10 then 
        ... 
    else 
        if alter <= 18 then 
            ... 
        else 
            ...

Variante 2

grundpreis alter =
    if alter < 10 then 
        ... 
    else if alter <= 18 then 
        ... 
    else 
        ...

Variante 3

grundpreis alter =
       if alter < 10 then 
   ... 
            else 
    if alter <= 18 then 
            ... 
  else 
            ...

Aufgabe 2

Teste auch diese Varianten der Darstellung. Vergleiche und bewerte die Varianten.

Fertige Implementierung

Die Implementierung des neuen Preismodells ist noch nicht fertig. Es fehlen noch die Funktionen zur Berechnung der Zuzahlung und des gesamten Eintrittspreises.

module Eintrittspreis exposing (..)

grundpreis: Int -> Int
grundpreis alter =
    ...

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

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

Aufgabe 3

Die Implementierung lässt sich mit einzelnen Funktion - wie oben dargestellt - oder mit Hilfe eines let-Ausdrucks in einer einzigen Funktion umsetzen. Entscheide dich begründet für eine Variante und programmiere die Preisberechnung fertig. Teste deine Implementierung.

Suche

v
8.2.2.5.1.1.2
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/fallunterscheidungen/eintrittspreis/lernstrecke/version2
dev.inf-schule.de/8.2.2.5.1.1.2
dev.inf-schule.de/@/page/jz6gWexX2Ix1csej

Rückmeldung geben