Strukturierung
Wir haben bereits einige Befehlseingaben 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 das folgende Prinzip genutzt:
(Operator 1ter-Operand ... n-ter-Operand)In unseren Befehlseingaben sah dies dann zum Beispiel folgendermaßen aus:
(+ 12 13)
(+ (* 10 6 ) 4)Einen solche geklammerte und in Racket ausführbare Einheit nennen wir einen Ausdruck.
... ist eine ausführbare Einheit in Racket.
... ist vollständig geklammert und wird immer durch eine öffnende Klammer gestartet und mit einer schließenden Klammer geschlossen.
... hat einen Operator und $n$ Operanden.
Ein Operand kann selbst wieder ein Ausdruck sein. Hat ein Ausdruck einen oder mehrere Ausdrücke als Operanden, so nennen wir dies einen verketteten Ausdruck.
Aufgabe 1: Verschiedene Operatoren und Operanden
Der Operator eines Ausdrucks muss kein Rechenoperator sein, genauso müssen die Operanden nicht immer Zahlen sein. Betrachte die folgenden drei Ausdrücke und beantworte jeweils die Fragen:- Was ist der Operator und was der/die Operand(en)?
- Welche Funktionalität hat der Operator?
> (max 12 14)
> (odd? 7)
> (string-length "Informatik")
Aufgabe 2: Anzahl Ausdrücke
Wie viele Ausdrücke findest du in den einzelnen Befehlseingaben?
(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ühren 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.