Bedingte Ausdrücke
Aus ProgrammingWiki
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
Quelltext überprüfen:
-
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") --> #t
Hinweis: Sie können zur Lösung folgende Sprachelemente nutzen:
> (equal? "otto" "otto") --> #t > (reverse '(a b c d e)) --> (e d c b a)
Quelltext überprüfen:
-
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.
Quelltext überprüfen:
Quelltext überprüfen:
Quelltext überprüfen:
-
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) --> #f
Hinweis: Sie können zur Lösung die variabelstellige Prozedur max nutzen:
> (max 3 4 5 6 7 5 7 2) --> 7
Quelltext überprüfen: