Funktionsdefinition Schritt 2: Signatur
Signatur
Nachdem wir im ersten Schritt beschrieben haben, was die Funktion leisten soll, ist es nun Zeit uns nochmals über die Übergabe- und Rückgabedaten Gedanken zu machen.Aufgabe 1. Was sind valide Übergabe-Rückgabedaten?
;a)
(remainder 12 3.5)
;b)
(* 10 (string-length "Hallo"))
;c)
(+ (odd? 7) 10)
BlackBox-Diagramme als Signatur-Blaupause
Du hast in Aufgabe 1. festgestellt, dass Funktionen nur auf festgelegten Datentypen funktionieren. Die gleichen Überlegungen haben wir uns bereits bei unseren BlackBox-Modellierung gestellt.Im Programmcode nennen wir die Zeile, die unsere validen Übergabe- und Rückgabe-Datentypen festlegt Signatur.
Aufgabe 2. Signatur aus BlackBox-Diagrammen
(: flaecheninhalt (natural natural -> natural))
Bestimme welche Informationen aus der BlackBox in der Signatur vorhanden sind.
Signatur im Racket Programmcode
Die Signatur einer Funktion, gibt an, welche Datentypen von der Funktion als Übergabebedaten akzeptiert werden, und welche als Rückgabedaten zurück gegeben werden.
Der Aufbau einer Signatur in Racket ist immer wie folgt:
(: nameDerFunktion (datentypUebergabe_1 ... datentypUebergabe_n -> datentypRueckgabe))
Wir schreiben diese Signatur immer direkt unter unsere Kurzbeschreibung.
;Kurzbeschreibung
(: nameDerFunktion (datentypUebergabe_1 ... datentypUebergabe_n -> datentypRueckgabe))
Aufgabe 3. Signatur der Flächeninhaltsberechnung
Füge deiner Kurzbeschreibung im Definitionsfenster die Signatur für unsere Flächeninhaltsberechnung hinzu.
Aufgabe 4. Kurzbeschreibung und Signatur aus BlackBox-Diagrammen erstellen
Schreibe für die folgenden BlackBox-Diagramme eine Kurzbeschreibung und eine Signatur in dein Definitionsfenster.
Aufgabe 5. Kurzbeschreibung und Signatur aus Problembeschreibungen erstellen
Schreibe für die folgenden Problembeschreibungen eine Kurzbeschreibung und eine Signatur in dein Definitionsfenster.
- Eine Funktion die den Durchschnitt zweier ganzer Zahlen berechnet.
- Eine Funktion die bestimmt ob ein Text eine gerade Anzahl an Buchstaben hat.