Inf1-Skript6 - 6.1 Einf¨uhrung in die Rekursion 82 6...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 6.1 Einf¨uhrung in die Rekursion 82 6 Rekursion 6.1 Einf¨uhrung in die Rekursion Allgemein bezeichnet man die Definition eines Problems, einer Funktion oder ganz allgemein eines Verfahrens durch sich selbst als Rekursion . Wir nennen Programme rekursiv , wenn sie Funktionen oder Prozeduren enthalten, die sich selbst direkt oder indirekt aufrufen. Ein Objekt (oder Problem, Methode, ...) heißt rekursiv, wenn es sich teilweise selbst enth¨ alt: • Russische Holzpuppen (Matroschka), • einige Bilder von M.C. Escher, • ein Fernsehbild, bei dem die Kamera den eigenen Monitor zeigt. Um zu einem Abschluß zu gelangen, muß die Rekursion irgendwo beendet werden, etwa durch elementare F¨alle oder Objekte , die unmittelbar erkl¨ art werden k¨ onnen. Andernfalls l¨ aßt sich die Rekursion endlos fortsetzen – ohne abschließende Aussage: It always takes longer than you expect, even when you take into account this law. In der Modellierung und in der Programmierung findet Rekursion h¨ aufig Verwen- dung. Zur Modellierung von Personen in einem Stammbaum ist es etwa notwendig, daß eine Person folgende Attribute hat: • Vor- und Nachname, • Geburts- und ggf. Sterbedatum, • Vater , Mutter und Kinder . Die hervorgehobenen Attribute sind wiederum vom Typ Person . jede Person ist also u.a. durch andere Personen definiert. In den Sprachdefinitionen der BNF befinden sich zahlreiche Beispiele f¨ur rekursive Regeln (vgl. Beispiel 4.3): <Formel1> ::= <Term> | <Formel1> + <Term> 6.2 Rekursive Funktionen und Prozeduren 83 Eine <Formel1> kann also neben einem <Term> auch wiederum eine <Formel1> sein, die durch + mit einem <Term> verkn¨upft ist. Zu beachten ist dabei, daß durch diese Regel beliebig lange Sequenzen erzeugt werden k¨ onnen, bevor andere (nichtrekursive Regeln) verwendet werden m¨ussen. Generell lassen sich rekursive Definitionen in zwei Teile aufteilen: • den Rekursionsanker • und den Rekursionsschritt . Der Rekursionsanker definiert den Wert f¨ur eine bestimmte Eingabe durch eine nichtrekursive Formel. Es kann sich dabei um einen einfachen Zahlenwert handeln, aber auch um eine (andere) Formel. Es kann auch f¨ur mehr als eine Eingabe einen Rekursionsanker geben. Der Rekursionsschritt hingegen definiert den Wert f¨ur eine bestimmte Eingabe durch den Wert f¨ur eine andere Eingabe. In der Regel wird dabei ein Schritt in die Richtung des Rekursionsankers gemacht, zum Beispiel das Herunter- oder Heraufz¨ ahlen der Eingabe. Beispiel 6.1 n summationdisplay i =0 x i = x falls n = 0 x n + n- 1 summationdisplay i =0 x i falls n > Rekursionsanker ist der Fall n = 0, ein Rekursionsschritt in Richtung des Rekur- sionsankers ist der andere Fall....
View Full Document

Page1 / 10

Inf1-Skript6 - 6.1 Einf¨uhrung in die Rekursion 82 6...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online