Zur Startseite×
Informatik 2019
Sekundarstufe I
 

 Suchen

Seite: cbac_index
Diese Seite wurde aktualisiert am 04.09.2018

LOGIN
Benutzer:
Passwort:
 
Quelle: https://nwm2.net-schulbuch.de/index.php
Druckversion vom 18.05.2024 15:12 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):
    if Laenge < 0.1: return
    turtle.forward (Laenge)
    turtle.right (10)
    spirale (Laenge - 0.1)

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
   WENN :Laenge < 0.1 DANN ABBRUCH
   FD :Laenge
   RE 10
   Spirale :Laenge - 0.1
ENDE

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.

©2024 NET-SCHULBUCH.DE
09.30  0.1383  7.4.33