Bedingte Ausdrücke
Inhaltsverzeichnis |
Bedingte Ausdrücke in Scheme
Bedingte Ausdrücke sind Programmstrukturen, mit denen der Wert eines Ausdrucks von bestimmten Bedingungen abhängig gemacht werden kann.
| Grundform | Alternative | Fallauswahl | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
|
||||||
|
Beachte:
|
Beachte:
|
Beachte:
|
Aufgaben
-
Signumfunktion
Schreiben Sie eine Prozedur für die einstellige Funktion signum, die als Funktionswerte -1, 1 oder 0 entsprechend des Vorzeichens der als Argument übergebenen Zahl zurückgibt.
Beispiele:> (signum -337.8436) --> -1 > (signum 0) --> 0 > (signum (/ 34 45)) --> 1 -
Palindromprüfer
Entwickeln Sie das Prädikat palindrom?, das zu einer übergebenen Zeichenkette entscheidet, ob sie vor- und rückwärts gelesen gleich lautet.
Beispiele:> (palindrom? "informatik") --> #f > (palindrom? "otto") --> #tHinweis: Sie können zur Lösung folgende Sprachelemente nutzen:
> (equal? "otto" "otto") --> #t > (reverse '(a b c d e)) --> (e d c b a) -
Klassenstärkenprüfer
Lehrer und Schüler bewerten Klassenstärken etwa mit folgenden Einschätzungen:
- 10 ... 15: geringe Klassenstärke,
- 16 ... 20: ideale Klassenstärke,
- 21 ... 25: normale Klassenstärke,
- 26 ... 32: hohe Klassenstärke,
Alle anderen Schülerzahlen sind unzulässig. Implementieren Sie einen "Klassenstärkenprüfer" als bedingten Ausdruck mit den Sprachelementen:
- cond
- if
- case.
Die Prozeduren sollen das Bewertungsergebnis als Zeichenkette zurückgeben.
-
Konstruierbarkeit von Dreiecken
Zu drei beliebig gegebenen Seitenlängen kann nicht in jedem Fall ein Dreieck konstruiert werden (vgl. Abbildung).
Vervollständigen Sie das Prädikat konstruierbar?, mit dem geprüft werden soll, ob ein Dreieck zu den gegebenen Seitenlängen a, b und c konstruierbar ist.
Beachten Sie dabei, dass diese Seitenlängen in einer beliebigen Reihenfolge gegeben sein können.Beispiele:
> (konstruierbar? 3 4 5) --> #t > (konstruierbar? 2 7 2) --> #fHinweis: Sie können zur Lösung die variabelstellige Prozedur max nutzen:
> (max 3 4 5 6 7 5 7 2) --> 7
