Rekursionen Erstellt von J. Rudolf im November 2001 /

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Programmierung 1 - Repetitorium
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
12. Iteration und Rekursion
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
Puck eine visuelle Programmiersprache für die Schule
Unter- und Oberklassen: Beispiel
Imperative Programmierung
DINAMISCHE STRUKTUREN FACHBEGRIFFE 1. DER POINTERDER POINTER 2. DER BUFFERDER BUFFER 3. DER KNOTENDER KNOTEN DIE EINFACHVERKETTETE LISTE DEFINITION DEFINITION.
REKURSION + ITERATION. Bemerkung: Die in den folgenden Folien angegebenen "Herleitungen" sind keine exakten Beweise, sondern Plausibilitätsbetrachtungen.
Dynamischer Speicher. Ein Vergleich aus dem täglichen Leben...
Dynamische Programmierung (2) Matrixkettenprodukt
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Informatik II (für Fakultät Maschinenwesen)
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
Matthias Spohrer · TU München 8. Präsenzveranstaltung – TU Stammgelände Innenstadt Nachqualifizierungskurs für Informatiklehrkräfte.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Thema: Fibonacci-Zahlen
Rekursion Richard Göbel.
Visualisierung funktionaler Programme
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Rekursion: Fraktale Folie 2 Binärbaum Übungen Dimension Java Übung
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Rekursion IFB Weiterbildungslehrgang X Informatik
Einführung in die Programmiersprache C 4
Wiederholte Programmausführung
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Christian Mansky Design - Fallstudien Christian Mansky
2.4 Rekursion Klassifikation und Beispiele
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Grundkonzepte des Programmierens (mit ActionScript)
Kapitel 2: Grundelemente von Programmiersprachen
Algorithmen und Datenstrukturen Übungsmodul 8
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
Codebaumanalyse Was geschieht in der Methode Codebaum.decodiere, wenn als Parameter der Code 001 übergeben wird? Gib die Zeilennummern der durchlaufenen.
Vorkurs Programmierungstechnik Einführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität.
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
Kurzreferat über Funktionen und Prozeduren Von Alexander RothHomepage:
Der Datentyp Verbund (record)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Delphi Chars und Strings
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
The Programming Language Pascal
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Unterprogramme / Methoden
Zusammenfassung Lineare Funktionen.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Dr. Wolfram Amme, Funktionale Programmierung, Informatik II, FSU Jena, SS Funktionale Programmierung.
2.4 Rekursion Klassifikation und Beispiele
Rekursion – Speicherverwaltung
Datentypen: integer, char, string, boolean
Parametrisierte Prozeduren und Funktionen
Rekursionen Erstellt von J. Rudolf im November 2001
Raphael Fischer Informatik II - Übung 05 Raphael Fischer
The Programming Language Pascal
 Präsentation transkript:

Rekursionen Erstellt von J. Rudolf im November 2001 /

Themengebiete 1.Was ist eine Rekursion? 2.Lineare Rekursion: Beispiel 3.Struktur einer lin. Rekursion 4.Übung 5.Lösung zu einer Übung

1. Was ist eine Rekursion? Eine Funktion kann nicht nur eine andere Funktion aufrufen sondern auch sich selbst. Dabei wird eine Abbruchbedingung benötigt (um einen Endlos-Aufruf zu verhindern, bei dem der Stack überläuft und zu einer Fehlermeldung führt) ist ein sehr komfortables Programmierkonzept!!!!! Bei einer lineare Rekursion: einfacher Selbstaufruf Es gibt auch zwei oder mehrfachen Selbstaufruf

2. Lin. Rekursion: Beispiel Rekursive Definition der Fakultätsfunktion n! = n * (n-1)! und 1!=1 function fac(n:integer):integer; Begin If n=1 Then result:=1 else result:= n*fac(n-1); end; Mit dem Aufruf fac(3) wird so gerechnet: fac(3)=3 * fac(2) -> 2 * fac(1) -> 1 fac(3) ruft fac(2) auf, dieses fac(1) Nun Abbruch (da n=1): also fac(1)=1 Nun wird alles rückwärts multipliziert: fac(3) = 3 * 2 * 1 = 6

3. Struktur einer lin. Rekursion Procedure rekursiv; Begin If Then //Rekursionsanfang Else Begin ; //während des Abstiegs rekursiv; //Selbstaufruf ; //während des Aufstiegs End;{else} End;{Procedure}

4. Übungen a)Rekursive Berechnung der Summe der ersten n ungeraden Zahlen ( (2n-1) ) b)Ein wort soll umgedreht werden: trow. c)Eine Zeichenfolge soll als Palindrom (z.B. anna) erkannt werden.

5. Lösung zu Übung (b) Procedure wort(Var str:String); Var hilf1,hilf2:string; Begin If length(str)<2 Then // Abbruchbedingung Else begin hilf1:=copy(str,1,1);hilf2:=copy(str,length(str),1); str:=copy(str,2,length(str)-2); wort(str); str:=hilf2+str+hilf1; End;{if} End; procedure TForm1.Button1Click(Sender: TObject); Var drehen:String; begin drehen:=Edit1.text; wort(drehen); edit1.text:=drehen; end;

Quellenangabe Baumann, Rüdeger: Informatik für die Sekundarstufe 2. Klett