Übungen: Fallunterscheidungen
Aufgabe 1: Notenvergabe
Für eine Klausur soll anhand der erreichten Punktzahl (0 bis 100) automatisch eine Note vergeben werden. Die Aufteilung der Noten kannst du der Tabelle entnehmen.
Note | Punktebereich |
---|---|
1 | ab 95 Punkten |
2 | ab 80 Punkten |
3 | ab 60 Punkten |
4 | ab 45 Punkten |
5 | ab 30 Punkten |
6 | unter 30 Punkten |
(a) Implementiere eine Funktion, die für die erreichte Punkteanzahl die korrekte Note zurückliefert.
Aufgabe 2: Korrektur einer inkorrekten allgemeinen Fallunterscheidung
Ein Student hat in einer Prüfung zu Racket die folgende Funktion geschrieben:
;Funktion, die für 0 bis 3 das Zahlwort der nächstgrößeren Zahl liefert, sonst “fünf”
(: naechsteZahl (natural -> string))
(check-expect (naechsteZahl 0) "eins")
(check-expect (naechsteZahl 3) "vier")
(check-expect (naechsteZahl 7) "fünf")
(define naechsteZahl
(lambda (zahl)
(cond
([< zahl 4] "vier")
([< zahl 3] "drei")
([< zahl 2] "zwei")
([< zahl 1] "eins")
(else "fünf")
)
) )
Allerdings schlägt einer der drei Tests fehl.
(a) Analysiere die Funktion und erkläre, welchen Fehler der Student gemacht hat.
(b) Korrigiere die Funktion.
Aufgabe 3: Zündtemperatur
Unter der Zündtemperatur eines Stoffes versteht man die Temperatur, bei der sich ein Stoff von selbst entzündet. Das heißt, ohne dass eine äußere Einwirkung wie ein Streichholz oder Funkenflug erforderlich ist. Die Zündtemperatur einiger Materialien kannst du der Tabelle entnehmen.
Material | Zündtemperatur in °C |
---|---|
Holz | 280-340 |
Heu | 260-310 |
Getreide | 250-320 |
Holzkohle | 300 |
Zeitungspapier | 175 |
(a) Implementiere eine Funktion, die für ein übergebenes Material und eine übergebene Temperatur zurückgibt, ob das Material Gefahr läuft, sich bei dieser Temperatur selbst zu entzünden.