Strukturierung: Rechnen mit Racket
Wir haben bereits einige Rechnungen in der REPL von DrRacket ausgeführt. Dabei haben wir automatisch darauf geachtet, dass wir immer eine korrekte Klammerung haben und eine korrekte Reihenfolge der Befehle und Zahlen. Dabei haben wir immer die folgende Syntax genutzt:
(Operator 1ter-Operand ... n-ter-Operand)In unseren Rechnungen sah dies dann zum Beispiel folgendermaßen aus:
(+ 12 13)
(+ (* 10 6 ) 4)Eine auf diese Art aufgebaute Einheit stellt ein Beispiel für einen Ausdruck dar.
Ein Ausdruck ist eine auswertbare Einheit, die bei Auswertung einen Wert ergibt.
Eine auswertbare Einheit ist in Racket eines der folgenden:
- Ein Wert
- Die Anwendung eines Operators auf $n$ Operanden
Wird ein Operator auf Operanden angewandt, dann gilt:
- Die Operanden sind wiederum Ausdrücke.
- Der Ausdruck ist vollständig geklammert und wird immer durch eine öffnende Klammer gestartet und mit einer schließenden Klammer geschlossen.
- Der Ausdruck wird bei Ausführung zu einem Wert ausgewertet.
Aufgabe 1: Verschiedene Operatoren und Operanden
Der Operator eines Ausdrucks muss kein Rechenoperator sein, genauso müssen die Operanden nicht immer Zahlen sein.
(a) Betrachte die folgenden drei Ausdrücke und beantworte jeweils die Fragen:
- Was ist der Operator und was der/die Operand(en)?
- Zu welchem Wert wird der Ausdruck ausgewertet?
- Welche Funktionalität hat der Operator?
> (max 12 14)
> (odd? 7)
> (string-length "Informatik")
Aufgabe 2: Anzahl Ausdrücke
Wie viele Ausdrücke (die keine Werte sind!) findest du in den einzelnen Eingaben?
(a)
> (+ 25 17)
(b)
> (+ (max 25 7) 12)
(c)
> (/ (- 12 13) (* 2 (+ 4 3)))
Aufgabe 3: Verkettung von Ausdrücken
Entwerfe einen Ausdruck für die folgenden Aufgaben und führe diesen aus:
(a) Bestimme den größeren Wert von $(12*12*12)$ und $1720$.
(b) Multipliziere die Zeichenanzahl von "Hallo Welt!" mit der Zahl $12$.
(c) Bestimme, ob das Wort "Dampfschifffahrtsgesellschaft" eine ungerade Buchstabenanzahl hat.
Tipp: Verwende die in Aufgabe 1 vorgestellten Ausdrücke und verkette diese geschickt miteinander.