Funktion als Verarbeitungseinheit
Konzeption einer Verarbeitungseinheit
Wir betrachten jetzt Hausmodelle mit variablen Ausmaßen.
Wenn man für viele unterschiedlich dimensionierte Baumhäuser den Materialbedarf berechnen möchte, ist es günstig, eine eigene Verarbeitungseinheit für diesen Zweck zu entwickeln. Das Verhalten der Verarbeitungseinheit lässt sich mit einem Black-Box-Diagramm verdeutlichen.
Wenn man der Verarbeitungseinheit die Daten eines speziellen Hauses (in m) übergibt, dann berechnet sie die gesamte Oberfläche und gibt diese zurück.
Aufgabe 1
Entwickle eine Formel, mit der man die gesamte Oberfläche eines Hauses aus den gegebenen Größen berechnen kann.
flaecheHaus(laenge, breite, hoeheHaus, hoeheDach) = 2*laenge*hoeheHaus + ...
Implementierung als Funktion
In Python lässt sich die konzipierte Verarbeitungseinheit als Funktion implementieren. Man öffnet ein neues Fenster und gibt den folgenden Quelltext dort ein. Achte auf die gezeigte Einrückung.
from math import sqrt
def flaecheHaus(laenge, breite, hoeheHaus, hoeheDach):
return 2*laenge*hoeheHaus + 2*breite*hoeheHaus + 2*(breite*hoeheDach/2) + 2*laenge*sqrt((breite/2)*(breite/2)+hoeheDach*hoeheDach)
Besser lesbar wird der Quelltext, wenn man die Berechnungsformel über mehrere Zeilen schreibt.
In Python benutzt man das Backslashsymbol \
zur Verbindung von Zeilen.
from math import sqrt
def flaecheHaus(laenge, breite, hoeheHaus, hoeheDach):
return 2*laenge*hoeheHaus + \
2*breite*hoeheHaus + \
2*(breite*hoeheDach/2) + \
2*laenge*sqrt((breite/2)*(breite/2)+hoeheDach*hoeheDach)
Dieser Quelltext besteht im Wesentlichen aus einer Funktionsdefinition und stellt das gewünschte Berechnungsprogramm dar. Das Programm (bzw. den Quelltext) muss man abspeichern und dann einmal ausführen, damit Python die neu definierte Funktion kennen lernt. Anschließend kann man die Funktion für konkrete Berechnungen im Ausführfenster verwenden.
>>> flaecheHaus(2.4, 1.8, 1.5, 0.4)
18.04745174486213
>>> flaecheHaus(2.8, 2.8, 2.0, 0.2)
30.879595949289328
Aufgabe 2
(a) Probiere das selbst aus.
(b) Bestimme analog die Oberfläche eines Hauses mit den folgenden Ausmaßen: Länge: 1.8m; Breite: 1.5m; Haushöhe: 1.2m; Dachhöhe: 0.3m.
Aufgabe 3
Arbeite den Abschnitt Fachkonzept - Funktion durch, um dich mit dem neuen Fachkonzept vertraut zu machen. Du solltest danach Antworten auf folgende Fragen geben können:
- Welche Idee steckt hinter dem Fachkonzept "Funktion"? Wozu verwendet man Funktionen in der Informatik?
- Was ist der Unterschied zwischen einer Funktionsdefinition und einem Funktionsaufruf?
- Wozu dienen Parameter?
- Was leistet die Verarbeitungsvorschrift?
- Wie definiert und verwendet man Funktionen in Python?