Strukturierung: Eigene Funktionen erstellen
Möchten wir in Racket eine eigene Funktion erstellen, so können wir dabei immer nach einem eindeutigen Schema vorgehen. Das aus fünf Schritten bestehende Schema nennen wir Konstruktionsanleitung einer Funktion:
1. Kurzbeschreibung
Ein Kommentar in Racket, der den Zweck der Funktion knapp beschreibt.
2. Signaturdefinition
Legt die Signatur für die zu erstellende Funktion fest.
3. Tests
Beispielhafte Funktionsaufrufe mit erwarteten Ergebnissen, um die Korrektheit der Funktion zu prüfen.
4. Funktionsgerüst
Legt den Namen der Funktion fest sowie die Namen der Parameter.
Achtung: Für jedes Übergabedatum muss
im Funktionsgerüst genau ein Parameter festgelegt werden.
5. Funktionskörper
Ein Ausdruck, der die Übergabedaten zu einem Rückgabedatum verarbeitet. Zur Nutzung
der Übergabedaten werden innerhalb der Funktion die Parameter genutzt.
Beispiel anhand der Funktion zu-streichende-flaeche
:
;Berechnet die zu streichende Fläche eines Zimmers (4 Wände + Decke) (: zu-streichende-flaeche (real real real -> real)) (check-expect (zu-streichende-flaeche 1 1 1) 5) (check-expect (zu-streichende-flaeche 420 350 250) 532000) (define zu-streichende-flaeche (lambda (laenge breite hoehe) (+ (* 2 (+ (* laenge hoehe) (* breite hoehe))) (* laenge breite)) ))
Aufgabe 1: Türen beim Streichen

flaeche-mit-tueren
) schreiben, die die zu streichende Fläche berechnet
und dabei die Anzahl der Türen berücksichtigt. Dabei gehen wir entsprechend der
Konstruktionsanleitung einer Funktion
vor.
(a) Schreibe eine geeignete Kurzbeschreibung.
(b) Schreibe eine geeignete Signaturdefinition.
(c) Schreibe geeignete Tests.
(d) Schreibe ein geeignetes Funktionsgerüst.
(e) Schreibe einen geeigneten Funktionskörper.
Aufgabe 2: Berechnen der Streichfläche mit Türen
(a) Berechne die zu streichende Fläche von Zimmer 1 unter Berücksichtigung der Türen.
(b) Berechne die zu streichende Fläche des Flurs unter Berücksichtigung der Türen.
(Hinweis: Die Wandstärke der Innenwände beträgt 11,5 cm.)