Fachkonzept - Unterprogramme

Fachkonzept - Unterprogramm

Komplexe Probleme versucht man, mit der Problemlösestrategie teile und herrsche zu lösen. Dabei wird das Ausgangsproblem in überschaubarere Teilprobleme zerlegt und aus Lösungen zu den Teilproblemen eine Gesamtlösung zusammengesetzt. Zur Umsetzung dieser Strategie in einer Programmiersprache benutzt man sogenannte Unterprogramme.

Ein Unterprogramm ist eine eigenständige Programmeinheit zur Lösung eines Teilproblems.

Ein Unterprogramm fasst die Anweisungen zur Lösung des Teilproblems zu einer neuen Einheit zusammen. Diese Einheit wird dabei auch mit einem Namen versehen. Das folgende Beispiel zeigt dies für das Problem Kleeblattreihe bis zum nächsten Baum legen (siehe vorangehender Abschnitt).

# vorher: 
# Kara sieht (in einiger Entfernung) vor sich einen Baum. 
# nachher:
# Kara hat den gesamten Weg bis zum Baum mit Kleeblättern ausgelegt.

def kleeblattreiheBisBaumLegen():
    while not kara.treeFront():
        kara.putLeaf()
        kara.move()
    kara.putLeaf()

Eine solche Festlegung nennt man Unterprogrammdeklaration.

Den für das Unterprogramm eingeführten Namen kann man jetzt als neue Anweisung benutzen. Man nennt eine solche Anweisung dann Unterprogrammaufruf. Bei der Ausführung einer solchen neuen Anweisung werden die Anweisungen ausgeführt, die in der Deklaration festgelegt sind.

So führt der Unterprogrammaufruf kleeblattreiheBisBaumLegen() dazu, dass Kara die in der Deklaration oben angegebenen Anweisungen ausführt.

Vorteile von Unterprogrammen

Unterprogramme tragen dazu bei, Programme übersichtlich zu gestalten:

Jeder, der schon einmal versucht hat, ein langes und kompliziertes Programm zu verstehen, weiß, wie schwierig das ist - insbesondere, wenn man das Programm nicht selbst geschrieben hat. Viel leichter wird es, wenn das Programm gut strukturiert ist. Dazu gehört insbesondere, Lösungen von Teilproblemen in Unterprogramme auszulagern.

Unterprogramme dienen dazu, Code-Duplizierungen zu vermeiden:

Es kommt öfters vor, dass ein Teilproblem mehrfach auftritt. Im Beispiel ein Fußballfeld mit Kleeblättern auslegen kommt mehrfach das Teilproblem um einen Pfosten laufen vor. Ohne Unterprogramme müsste man ein und dasselbe Teilprogramm wiederholt in das Programm schreiben. Mit Hilfe von Unterprogrammen kann dieses Teilproblem einmal gelöst werden. Danach kann man mit einem Unterprogrammaufruf immer die entsprechende Teillösung aufrufen.

Bezeichner und Kommentare

Bei der Einführung von Namen für Unterprogramme sollte man immer sprechende Bezeichner benutzen. Niemand kann sich etwas unter einem Unterprogrammnamen wie z. B. p vorstellen. Benutzt man aber einen Namen, der bereits das gewünschte Verhalten verrät, wie z. B. umPfostenLaufen(), so trägt dies wesentlich zum Verständnis bei.

Kommentare können wichtige Zusatzinformationen liefern, um das Verhalten einzelner Programmteile transparent zu machen. Oft ist es günstig, bei Unterprogrammen das gewünschte Verhalten in einem Kommentar genau zu beschreiben. Kommentare können aber auch wichtige Stellen in einem Programm etwas näher erläutern.

X

Fehler melden

X

Suche