Allgemeine Iteration und Rekursion

Slides:



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

Asymptotische Notation
Abschluss Gegeben Menge F von funktionalen Abhängigkeiten.
Sortieren I - Bubblesort -
Kapitel 6. Suchverfahren
10. Grundlagen imperativer Programmiersprachen
12. Iteration und Rekursion
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
DINAMISCHE STRUKTUREN FACHBEGRIFFE 1. DER POINTERDER POINTER 2. DER BUFFERDER BUFFER 3. DER KNOTENDER KNOTEN DIE EINFACHVERKETTETE LISTE DEFINITION DEFINITION.
1 Computergestützte Verifikation Probleme bei der Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen.
DO...WHILE Anweisung.
Algorithmentheorie 04 –Hashing
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.

Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 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
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Einführung in die Programmierung Datensammlung
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Einführung in die Programmierung
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Wiederholte Programmausführung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
2.4 Rekursion Klassifikation und Beispiele
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
MODULA-2.
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
PHP: Operatoren und Kontrollstrukturen
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 18: Mehr über Vererbung und Agenten.
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
Vordefinierte Datentypen (1)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Wiederholte Programmausführung
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
2.4 Rekursion Klassifikation und Beispiele
Strukturierte Variablen: Records
Arbeiten mit dem Terminal
Datentypen: integer, char, string, boolean
Prüfungsbesprechung Barbara Scheuner
Vom Transistor zum HW-Automaten
Unterschiedliche Kontrollstrukturen
Syntax: while ( BEDINGUNG ) { // Anweisungen die so lange immer wieder ausgeführt // werden, wie die Bedingung zutrifft } for (INITIALISIERUNG; BEDINGUNG;
SS 04 Christiane Rauh Christian Hellinger
§17 Produkte und Quotienten von Vektorräumen
Schleifen mit der Turtle
Ergänzung zu „Konkurrenz der Arten“
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
OO Analyse und Entwurf für Anwender
Schleifen Datenfelder (Arrays) Verzweigungen
The Programming Language Pascal
 Präsentation transkript:

Allgemeine Iteration und Rekursion Programmierung I Prof. Dr. Michael Löwe

Allgemeine Iteration und Rekursion Inhalt Iteration Der semantische Iterator Die Verallgemeinerung auf beliebige Typen Anweisungen zur Iteration über Listen ganzer Zahlen Fiktive Anweisung zur Iteration über Zeichenkettenlisten Rekursion FHDW Allgemeine Iteration und Rekursion

Allgemeine Iteration und Rekursion „Zustand sei r:“ i = 1; a = a + i; b = b - i i = 2; a = a + i; b = b - i i = 3; a = a + i; b = b - i i = 4; a = a + i; b = b - i (.....) i = 10; a = a + i; b = b - i „:Zustand sei s“ „Zustand sei r:“ For i = 1 To 10 a = a + i; b = b - i Next i „:Zustand sei s“ s = [|a = a + i; b = b - i|][| i = 1 To 10|](r)(r) s = [|a = a + i; b = b - i|](i, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])(r) FHDW Allgemeine Iteration und Rekursion

Der semantische Iterator Sei f: TypedStates  TypedStates Abbildung, i  Names und w  Z* eine Liste von ganzen Zahlen, dann ist f (i, w): TypedStates  TypedStates so definiert: (1) f (i, )(s) = s (2) f (i, xv)(z, t) = f (i, v)(f(set(z, i, x), t)) falls t(i) = Integer (3) f (i, w)(s) = undefiniert sonst FHDW Allgemeine Iteration und Rekursion

Der allgemeine Iterator Sei f: TypedStates  TypedStates Abbildung, i  Names und w  T* eine Liste von Elementen zu einem beliebigen Typ T, dann ist f (i, w): TypedStates  TypedStates definiert: (1) f (i, )(s) = s (2) f (i, xv)(z, t) = f (i,v)(f(set(z, i, x),t)) falls domain(t(i)) = T (3) f (i, w)(s) = undefiniert sonst FHDW Allgemeine Iteration und Rekursion

Allgemeine Iteration und Rekursion Iteration über Zahlen Wenn i  Names, e1, e2, e3  EZ, dann ist i = e1 To e2 Step e3 ein Iterationskopf, i. e. i = e1 To e2 Step e3  IK Wenn k IK und a ST, dann ist: For k a Next  ST (Iteration) FHDW Allgemeine Iteration und Rekursion

Semantik der Iteration über Zahlen Für alle Iterationsköpfe k definieren wir [|k|]: TypedStates  Names  Z* so: [|i = e1 To e2 Step e3|] (s) = (i, w), wobei w durch die folgenden Bedingungen eindeutig charakterisiert ist: Für z1, z2  Z und u, w, x  Z* w = uz1x impliziert: z1  value[s](e2) falls value[s](e3) > 0 w = uz1x impliziert: z1  value[s](e2) falls value[s](e3) < 0 w = z1u impliziert: z1 = value[s](e1) w = uz1z2x impliziert: z2 = z1 + value[s](e3) [|For k a Next|](s) = [|a|] [|k|](s)(s) FHDW Allgemeine Iteration und Rekursion

Iteration über Zeichenketten Listen von Zeichenketten ES*: | ES* Wenn v ES und w ES* dann ist v|w ES* Wenn i  Names, sl  ES*, dann ist i In sl ein Iterationskopf, i. e. i In sl  IK Wenn k IK und a ST, dann ist: For k a Next  ST (Iteration) FHDW Allgemeine Iteration und Rekursion

Semantik der Iteration über Zeichenketten Für alle neuen Iterationsköpfe k definieren wir [|k|]: TypedStates  Names  S* so: [|i In w1|w2| ....|wn||] (s) = (i, value[s](w1).... value[s](wn)) [|For k a Next|](s) = [|a|] [| k |](s)(s) Anwendungsbeispiele??? FHDW Allgemeine Iteration und Rekursion

Allgemeine Iteration und Rekursion Wenn b ein boole‘scher Ausdruck ist, b  EW, und a Anweisung, a  ST, dann ist Do While b a Loop  ST. Die operationale Bedeutung ist gegeben durch: [| Do While b a Loop |](s) = (1) s , wenn value[s](b) = F (2) [|Do While b a Loop|]([|a|](s)) sonst FHDW Allgemeine Iteration und Rekursion

Allgemeine Iteration und Rekursion Wenn b ein boole‘scher Ausdruck ist, b  EW, und a Anweisung, a  ST, dann ist Do Until b a Loop  ST. Die operationale Bedeutung ist gegeben durch: [| Do Until b a Loop |](s) = (1) s , wenn value[s](b) = T (2) [|Do Until b a Loop|]([|a|](s)) sonst FHDW Allgemeine Iteration und Rekursion

Allgemeine Iteration und Rekursion Wenn b ein boole‘scher Ausdruck ist, b  EW, und a Anweisung, a  ST, dann ist Do a Loop While b  ST. Die operationale Bedeutung ist gegeben durch: [| Do a Loop While b |](s) = (1) [|a|](s) , wenn value[[|a|](s)](b) = F (2) [|Do a Loop While b |]([|a|](s)) sonst FHDW Allgemeine Iteration und Rekursion

Allgemeine Iteration und Rekursion Wenn b ein boole‘scher Ausdruck ist, b  EW, und a Anweisung, a  ST, dann ist Do a Loop Until b  ST. Die operationale Bedeutung ist gegeben durch: [| Do a Loop Until b |](s) = (1) [|a|](s) , wenn value[[|a|](s)](b) = T (2) [|Do a Loop Until b |]([|a|](s)) sonst FHDW Allgemeine Iteration und Rekursion