i

Eine Fallunterscheidung

Erste Preisgestaltung

Die folgende Preisgestaltung nutzt eine Fallunterscheidung, um den Preis nach dem Alter festzulegen.

Eintrittspreise:
Unter 14 Jahre ist der Eintritt frei.
Ab 14 Jahre kostet der Eintritt 5 €.

Zur Implementierung mit einer Funktion nutzt man einen if-then-else-Ausdruck.

module Eintrittspreis exposing (..)

eintrittspreis: Int -> Int
eintrittspreis alter =
    if alter < 14 then 0 else 5
> import Eintrittspreis exposing (..)
> eintrittspreis 15
...

Aufgabe 1

(a) Teste die Funktion in der REPL mit weiteren Funktionsaufrufen.

(b) Erkläre den Aufbau des Ausdrucks if alter < 14 then 0 else 5.

Zeitbasierter Preis

Die Preisgestaltung wurde abgeändert und wird jetzt mit dieser Funktion beschrieben:

eintrittspreis: Int -> Int -> Int
eintrittspreis alter stunden =
    (if alter < 14 then 0 else 3) + stunden

Aufgabe 2

Teste die Funktion in der REPL mit geeigneten Funktionsaufrufen. Achte darauf, dass jetzt 2 Parameter übergeben werden müssen.

Grundpreis mit Zuzahlung

Die Preisgestaltung in Aufgabe 2 wurde kritisiert. Sie wurde daher nochmal abgeändert:

eintrittspreis: Int -> Int -> Int
eintrittspreis alter stunden =
    (if alter < 14 then 0 else 5) + (if stunden > 3 then (stunden - 3) else 0)

Aufgabe 3

(a) Teste die Funktion in der REPL mit geeigneten Funktionsaufrufen.

(b) Vergleiche die Funktionsdefinition oben mit dieser veränderten Version:

eintrittspreis alter stunden =
    let
        grundpreis = (if alter < 14 then 0 else 5)
        zuzahlung = (if stunden > 3 then (stunden - 3) else 0)
    in
    grundpreis + zuzahlung

Suche

v
8.2.2.5.1.1.1
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/fallunterscheidungen/eintrittspreis/lernstrecke/version1
dev.inf-schule.de/8.2.2.5.1.1.1
dev.inf-schule.de/@/page/eWeHZK5dTapYkhrE

Rückmeldung geben