Fachkonzept - teile und herrsche

Komplexere Berechnungen

Als Beispiel betrachten wir die Berechnung der Oberfläche (ohne den Pyramidenboden) bei quadratischen Pyramiden.

quadratische Pyramide

Entscheidend für die zu berechnenden Flächeninhalte sind zum einen die Seitenlänge des Grundfläche, zum anderen die Höhe der Pyramide. Zur Ausführung der Berechnungen lässt sich eine Funktion flaechePyramide wie folgt modellieren.

<Black-Box-Diagramm><Funktionsname>flaechePyramide</Funktionsname><Übergaben><Übergabe><Wert>4.0</Wert><Variable>seite</Variable><Typ></Typ></Übergabe><Übergabe><Wert>3.0</Wert><Variable>hoehe</Variable><Typ></Typ></Übergabe></Übergaben><Rückgabe><Typ></Typ><Wert>28.84...</Wert></Rückgabe></Black-Box-Diagramm>

Die Berechnung des gesuchten Flächeninhalts werden vermutlich durch folgende Überlegungen geleitet:

Hier kommen also eine ganze Reihe von Überlegungen ins Spiel. In solchen Situationen hat es sich bewährt, das Problem in überschaubare Teilprobleme zu zerlegen.

Zerlegung des Problems in Teilprobleme

Es gibt mehrere Möglichkeiten, wie man im vorliegenden Kontext die Teilprobleme wählen kann. Eine recht naheliegende Möglichkeit könnte so aussehen:

Problemzerlegung

Das Problem "Berechnung der Oberfläche einer Pyramide" wird hier zerlegt das Teilproblem "Berechnung der Fläche eines Dreiecks" und in das Teilproblem "Berechnung der Länge der Hypotenuse in einem rechtwinkligen Dreieck".

Lösung des Problems mit geschachtelten Funktionsdefinitionen

Es ist günstig, für Teilprobleme eigenständige Funktionen einzuführen. Im vorliegenden Kontext könnte eine Umsetzung dieser Idee so aussehen:

from math import sqrt

def flaecheDreieck(g, h):
    return (g*h)/2

def laengeHypotenuse(a, b):
    return sqrt(a*a+b*b)

def flaechePyramide(seite, hoehe):
    return 4*flaecheDreieck(seite, laengeHypotenuse(seite/2, hoehe))

Beachte, dass eine Funktion wie ein Baustein benutzt werden kann. Man kann also bereits definierte Funktionen benutzen, um eine weitere Funktion zu definieren. Hierzu ruft man die bereits definierten Funktionen innerhalb der zu erstellenden Funktionsdefinition auf. Auf diese Weise ergeben sich ineinander geschachtelte Funktionsdefinitionen.

Teile und herrsche

Teile und herrsche ist eine Problemlösestrategie, bei der ein Problem immer weiter in Teilprobleme zerlegt wird, bis diese sich einfach lösen lassen. Aus den Lösungen der Teilprobleme wird dann die Lösung des Gesamtproblems zusammengesetzt.

Beim Programmieren mit Funktionen werden die Lösungen der Teilprobleme mit Hilfe eigenständiger Funktionen beschrieben. Diese Hilfsfunktionen benutzt man dann, um eine Funktion zur Lösung des Gesamtproblems zu entwickeln.

X

Fehler melden

X

Suche