Prozeduren
Aus ProgrammingWiki
Inhaltsverzeichnis |
Definition von Prozeduren
Um Kreisflächen beliebiger Radien zu bestimmen, war bisher immer die Neudefinition des Radiuses notwendig.
Wie kann der Radius als Argument übergeben werden?
Lösungsidee:
Definiere eine Prozedur, die ähnlich einer mathematischen Funktion einen Funktionswert zurückgibt.
Mathematik: |
$flaeche: r \longrightarrow \pi \cdot r^2$ |
---|---|
Funktionsorientierte Programmierung: |
Implementation:
Wir überzeugen uns zunächst davon, dass wir tatsächlich eine Prozedur definiert haben:
Nun können wir Berechnungen mit beliebigen Radien vornehmen:
Interpretation:
- Die Prozedur (lambda (r) (* pi r r)) wird an den Namen flaeche gebunden.
- Der Parameter r heißt gebundene Variable.
- Die Variablen * und pi sind dagegen ungebunden oder frei.
Beachte:
Die Bindung einer Prozedur an einen Namen heißt Prozedurabstraktion. Sie ist aber nicht notwendig!
In Scheme können auch unbenannte Prozeduren verwendet werden:
Zusammenfassung
- Benutzerdefinierte Prozeduren werden mit λ-Ausdrücken definiert.
- Allgemeine Syntax: (lambda (<Parameter>) <Body>).
- Die Anzahl der Parameter kennzeichnet die Stelligkeit einer Prozedur. Ist die Parameterliste leer, spricht man von nullstelligen Prozeduren,
- Die Parameter sind gebundene Variablen, die beliebig bezeichnet werden können, sofern sie nicht mit freien Variablen im Körper übereinstimmen.
- λ-Ausdrücke können an Prozedurnamen gebunden werden (Prozedurabstraktion).
Aufgaben
-
Sinnvolles Runden
Für alle nachfolgenden Berechnungen ist es sinnvoll, über eine Prozedur zu verfügen, die auf eine beliebige Anzahl von Nachkommastellen rundet.
Beispiele:(runden 12.3456 2) --> 12.35 (runden 0.005712 3) --> 0.006
Nutzen Sie zur Implementation die Standard-Prozedur round, die lediglich ganzzahlig rundet.
Quelltext überprüfen:
-
Vollzylinder
Schreiben Sie eine Prozedur zur Volumenberechnung eines geraden Vollzylinders.
Quelltext überprüfen:
-
Hohlzylinder
Implementieren Sie nun eine Prozedur zur Volumenberechnung eines geraden Hohlzylinders.
Quelltext überprüfen:
-
Pyramide und Pyramidenstumpf
Definieren Sie zunächst die Prozedur zur Berechnung des Volumens und der Oberfläche gerader quadratischer Pyramiden.
Quelltext überprüfen:
Quelltext überprüfen:
In einer nun geringeren Höhe wird die Spitze der quadratischen Pyramide abgeschnitten.
Zurück bleibt ein Pyramidenstumpf.
Schreiben Sie zwei Prozeduren, die entsprechend dieser Vorstellung das Volumen und den Oberflächeninhalt des Pyramidenstumpfes ermitteln.Quelltext überprüfen:
Quelltext überprüfen:
-
Regelmäßiges N-Eck
Zu einem regelmäßigen N-Eck sind der Außenradius $r$ und die Eckenzahl $N \geq 3$ gegeben.
Implementieren Sie zwei Prozeduren zur Berechnung des Umfangs und des Flächeninhalts dieses N-Ecks.Quelltext überprüfen:
Quelltext überprüfen: