Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Funktion als Verarbeitungseinheit

Konzeption einer Verarbeitungseinheit

Wir betrachten jetzt Hausmodelle mit variablen Ausmaßen.

Hausmodell

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.

<Black-Box-Diagramm><Funktionsname>flaecheHaus</Funktionsname><Übergaben><Übergabe><Wert>2.4</Wert><Variable>laenge</Variable><Typ></Typ></Übergabe><Übergabe><Wert>1.8</Wert><Variable>breite</Variable><Typ></Typ></Übergabe><Übergabe><Wert>1.5</Wert><Variable>hoeheHaus</Variable><Typ></Typ></Übergabe><Übergabe><Wert>0.4</Wert><Variable>hoeheDach</Variable><Typ></Typ></Übergabe></Übergaben><Rückgabe><Typ></Typ><Wert>16</Wert></Rückgabe></Black-Box-Diagramm>

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:

X

Fehler melden

X

Suche