Übungen
Aufgabe 1
Betrachte einen Datensatz zu einem Flug in die Ferien.
Nutze die folgende Implementierung.
module Flugdaten exposing (..)
type alias Datum = (Int, Int, Int)
type alias Zeit = (Int, Int)
type alias Flugdaten =
{
datum: Datum,
von: String,
nach: String,
abflug: Zeit,
ankunft: Zeit,
flugzeug: String
}
meinFerienflug: Flugdaten
meinFerienflug = { datum = (12, 7, 2023), von = "Frankfurt", nach = "Malaga", abflug = (9, 15), ankunft = (12, 10), flugzeug = "AIRBUS A321" }
(a) Ergänze (und teste) die fehlenden Ausdrücke im REPL-Dialog zum Zugriff auf einzelne Daten des vorgegebenen Datensatzes.
import Flugdaten exposing (..)
> ...
(12,7,2023) : Datum
> ...
"Malage" : String
> ...
(12, 10) : Zeit
> ...
12 : Int
(b) Entwicle eine Funktion, mit der man die Flugdauer aus den Flugdaten bestimmen kann.
Aufgabe 2
Die Zeugnisnoten deiner MINT-Fächer bilden einen Datensatz.
Mathematik: 1 Physik: 2 Chemie: 2 Biologie: 4 Informatik: 1
(a) Entwickle eine Implementierung zur Verwaltung solcher MINT-Noten.
(b) Entwickle eine Funktion, mit der man die Durchschnittsnote der MINT-Fächer bestimmen kann.
Aufgabe 3
Bei Zeit- und Datumsangaben soll die Folgezeit bzw. das Folgendatum bestimmt werden.
Folgezeit (einfacher):
12:44 -> 12:45 05:59 -> 06:00 ...
Folgedatum (schwieriger):
11.07.2023 -> 12.07.2023 31.12.2023 -> 01.01.2024 28.02.2024 -> 29.02.2024 ...
Löse mindestens eines der skizzierten Probleme mit Hilfe einer geeigneten Funktion.