Druckversion vom 18.05.2024 13:46 Uhr
Startseite Software erstellen Entscheidungen treffen Bedingte Wiederholung Rekursive Formulierung
Rekursive Formulierungen von bedingten Wiederholungen
Die rekursive Formulierung mit Hilfe des Selbstaufrufes einer Prozedur ist in allen Programmiersprachen möglich. Allerdings ist im Allgemeinen die Anzahl der Selbtsaufrufe durch den vorhandenen Speicher begrenzt. Warum das so ist wird später im Kapitel Baumartige Strukturen im Rekursionsspiel oder auch "Aufrufspiel" beschrieben und erfahrbar gemacht.
Die rekursive Formulierung macht von der Tatsache Gebrauch, dass eine Prozedur sich selbst aufrufen kann. Das sieht dann so aus:
PROZEDUR Spirale (Länge)
WENN Länge < 0.1 DANN ABBRUCH
Stift.vorbewegen (Länge)
Stift.rechtsdrehen (10)
Spirale (Länge - 0.1)
ENDE PROZEDUR Spirale
Wenn du diese Prozedur analysierst, dann fällt dir sofort ins Auge, dass die Prozedur Spiralabschnitt.zeigen sich in ihrer letzten Zeile mit verändertem Parameter selbst aufruft.
Du wendest zu Recht ein, dass ein solcher Selbstaufruf einen endlosen Prozess startet. Deshalb ist eine Abbruchbedingung erforderlich. Ist diese Abbruchbedingung erfüllt, dann wird die Prozedur sofort verlassen.
Informatikerinnen und Informatiker nennen den Selbstaufruf einer Prozedur Rekursion.
Ist der Selbstaufruf der Prozedur ihre letzte Anweisung, dann sprechen sie von einer Endrekursion.
Wir nennen alle Formulierungen von Wiederholungen mit einer Abbruchbedingung
bedingte Wiederholung.
PYTHON | LOGO |
def spirale (Laenge): In PYTHON sind rekursive Lösungen grundsätzlich möglich, unterliegen aber Begrenzungen durch den zur Verfügung stehenden Speicher. Die Anzahl der rekursiven Selbstaufrufe nennt man Rekursionstiefe. Erst bei sehr aufwändigen Rekursionen kommt PYTHON an seine Grenzen. Iterative Formulierungen mit dem Schlüsselwort while werden im Allgemeinen in PYTHON geringfügig schneller verarbeitet als rekursive Lösungen.
|
PR Spirale :Laenge Eine rekursive Formulierung durch einen Selbstaufruf am Ende der Prozedur ist die übliche Formulierung von bedingten Wiederholungen in LOGO. Bedingte Wiederholungen werden in LOGO deshalb immer in eigene Prozeduren ausgelagert. Spezielle Vorkehrungen in der Verarbeitung von LOGO-Programmtext ermöglichen einen unbeschränkte Verwendung von Endrekursionen. Die Rekursionstiefe ist in diesem Fall unbegrenzt. |