Algorithmen und Datenstrukturen 04
|
|
- Reiner Ritter
- vor 5 Jahren
- Abrufe
Transkript
1 15. November 2011
2 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5 Vorbereitung Blatt 4 Anmerkungen
3 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5 Vorbereitung Blatt 4 Anmerkungen
4 Hinweise Hinweise Tutoren dürfen keine Lösungen mehr veröffentlichen auch keine eigenen! es wird zu manchen Aufgaben offizielle Lösungen geben z.b. Crackers falls es eine offizielle Musterlösung für eine Aufgabe gibt, wird diese immer Montags für alle Studenten zugänglich auf die AuD Website gestellt
5 Hinweise Fragen zu Blatt 3?
6 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5 Vorbereitung Blatt 4 Anmerkungen
7 Allgemeines Aufbau des Induktionsbeweises
8 Allgemeines Aufbau des Induktionsbeweises Induktionsanfang Formel beweisen für n = n 0
9 Allgemeines Aufbau des Induktionsbeweises Induktionsanfang Formel beweisen für n = n 0 Induktionsvoraussetzung (auch genannt Induktionsannahme) Formel gilt für n
10 Allgemeines Aufbau des Induktionsbeweises Induktionsanfang Formel beweisen für n = n 0 Induktionsvoraussetzung (auch genannt Induktionsannahme) Formel gilt für n Induktionsschritt Formel beweisen für n n + 1
11 Beispiele Beispiel 1 n (2i) = n 2 + n i=1 Induktionsanfang 2 1 = = 2 Induktionsschritt n+1 (2i) = (n + 1) 2 + n + 1 2(n + 1) + i=1 n (2i) = n 2 + 2n n + 1 i=1 2(n + 1) = 2n n + 2 = 2n + 2 Induktionsvoraussetzung n (2i) = n 2 + n i=1
12 Beispiele Beispiel 2 n 1 q k = 1 qn 1 q k=0 Induktionsanfang q 0 = 1 q 1 q Induktionsvoraussetzung n 1 q k = 1 qn 1 q k=0 Induktionsschritt n k=0 k=0 q k = 1 q(n+1) 1 q n 1 q n + q k = 1 q(n+1) 1 q n 1 q k = 1 q(n+1) 1 q k=0 n 1 q k = 1 q(n+1) 1 q k=0 n 1 q k = 1 qn 1 q k=0 (1 q)qn 1 q qn q (n+1) 1 q
13 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5 Vorbereitung Blatt 4 Anmerkungen
14 Allgemeines Rekursion bezeichnet die Technik, eine Funktion durch sich selbst zu definieren. Wikipedia Wozu braucht man Rekursion? Viele Zusammenhänge lassen sich durch Rekursion einfach(er) darstellen Wodurch wird es einfacher? In jedem Rekursionsschritt wird nur ein kleiner, überschaubarer Teil des Problems gelöst Nach einer endlichen Anzahl an Schritten erreicht man einen trivialen Basisfall
15 Allgemeines Der Aufbau rekursiver Funktionen ist zweigeteilt:
16 Allgemeines Der Aufbau rekursiver Funktionen ist zweigeteilt: 1 Prüfung auf Basisfall
17 Allgemeines Der Aufbau rekursiver Funktionen ist zweigeteilt: 1 Prüfung auf Basisfall 2 Teilproblem lösen
18 Allgemeines Der Aufbau rekursiver Funktionen ist zweigeteilt: 1 Prüfung auf Basisfall 2 Teilproblem lösen - darin ist der rek. Aufruf enthalten
19 Allgemeines Schema einer Rekursiven Funktion int recursive(int arg1,...) { if (arg1 ==...) { return 42; int r1 = recursive(arg1-1,...); int r2 = recursive(arg1-2,...); return r1 * r2;
20 Allgemeines Schema einer Rekursiven Funktion int recursive(int arg1,...) { if (arg1 ==...) { // Abbruchbedingung return 42; int r1 = recursive(arg1-1,...); int r2 = recursive(arg1-2,...); return r1 * r2;
21 Allgemeines Schema einer Rekursiven Funktion int recursive(int arg1,...) { if (arg1 ==...) { // Abbruchbedingung // Abbruch- oder Basisfall return 42; int r1 = recursive(arg1-1,...); int r2 = recursive(arg1-2,...); return r1 * r2;
22 Allgemeines Schema einer Rekursiven Funktion int recursive(int arg1,...) { if (arg1 ==...) { // Abbruchbedingung // Abbruch- oder Basisfall return 42; // rekursiver Fall int r1 = recursive(arg1-1,...); int r2 = recursive(arg1-2,...); return r1 * r2;
23 Lineare Rekursion und Endrekursion Lineare Rekursion max. ein rekursiver Aufruf pro Zweig
24 Lineare Rekursion und Endrekursion Lineare Rekursion max. ein rekursiver Aufruf pro Zweig Multiplikation auf Addition zurückführen: a b =
25 Lineare Rekursion und Endrekursion Lineare Rekursion max. ein rekursiver Aufruf pro Zweig Multiplikation auf Addition zurückführen: a b = b + (a 1) b = b + b + (a 2) b = b + b b {{ a mal
26 Lineare Rekursion und Endrekursion Lineare Rekursion max. ein rekursiver Aufruf pro Zweig Multiplikation auf Addition zurückführen: a b = b + (a 1) b = b + b + (a 2) b = b + b b {{ a mal static int multiply(int a, int b) { // Multiplikation mit 0 ist immer 0. if (a == 0) return 0; return b + multiply(a - 1, b); // nur fuer a > 0
27 Lineare Rekursion und Endrekursion Endrekursion Spezialform der linearen Rekursion Der rekursive Aufruf ist die letzte Aktion dabei werden oft Akkumulatoren verwendet, in denen ein Teilergebnis durchgereicht wird
28 Lineare Rekursion und Endrekursion Endrekursion Spezialform der linearen Rekursion Der rekursive Aufruf ist die letzte Aktion dabei werden oft Akkumulatoren verwendet, in denen ein Teilergebnis durchgereicht wird static int multiply(int a, int b, int zwsumme) { if (a == 0) return zwischensumme; return multiply(a - 1, b, zwsumme + b);
29 Lineare Rekursion und Endrekursion Endrekursion Spezialform der linearen Rekursion Der rekursive Aufruf ist die letzte Aktion dabei werden oft Akkumulatoren verwendet, in denen ein Teilergebnis durchgereicht wird static int multiply(int a, int b, int zwsumme) { if (a == 0) return zwischensumme; return multiply(a - 1, b, zwsumme + b); Aufruf: multiply(a, b, 0); zwsumme ist der Akkumulator
30 Entrekursivierung Entrekursivierung Überführung einer rekursiven in eine äquivalente iterative Funktion (Vorgang, keine Rekursionsform!) Als Zwischenschritt die endrekursive Funktion bilden Sinnvoll, da Schleifen effizienter Ausgeführt werden
31 Entrekursivierung Entrekursivierung Überführung einer rekursiven in eine äquivalente iterative Funktion (Vorgang, keine Rekursionsform!) Als Zwischenschritt die endrekursive Funktion bilden Sinnvoll, da Schleifen effizienter Ausgeführt werden static int multiply(int a, int b) { zwsumme = 0; while (a!= 0) { zwsumme = zwsumme + b; a = a - 1; return zwsumme;
32 Entrekursivierung Entrekursivierung Überführung einer rekursiven in eine äquivalente iterative Funktion (Vorgang, keine Rekursionsform!) Als Zwischenschritt die endrekursive Funktion bilden Sinnvoll, da Schleifen effizienter Ausgeführt werden static int multiply(int a, int b) { zwsumme = 0; // Akkumulator kein Parameter mehr while (a!= 0) { zwsumme = zwsumme + b; a = a - 1; return zwsumme;
33 Entrekursivierung Entrekursivierung Überführung einer rekursiven in eine äquivalente iterative Funktion (Vorgang, keine Rekursionsform!) Als Zwischenschritt die endrekursive Funktion bilden Sinnvoll, da Schleifen effizienter Ausgeführt werden static int multiply(int a, int b) { zwsumme = 0; // Akkumulator kein Parameter mehr while (a!= 0) { // negierte Abbruchbedingung zwsumme = zwsumme + b; a = a - 1; return zwsumme;
34 Entrekursivierung Entrekursivierung Überführung einer rekursiven in eine äquivalente iterative Funktion (Vorgang, keine Rekursionsform!) Als Zwischenschritt die endrekursive Funktion bilden Sinnvoll, da Schleifen effizienter Ausgeführt werden static int multiply(int a, int b) { zwsumme = 0; // Akkumulator kein Parameter mehr while (a!= 0) { // negierte Abbruchbedingung zwsumme = zwsumme + b; a = a - 1; // entspricht den Parametern return zwsumme;
35 Weitere Rekursionstypen Kaskadenartige Rekursion in mindestens einem Zweig mehr als ein rekursiver Aufruf Kennzeichen: Rekursive Aufrufe bilden Baumstruktur exponentiell wachsender Aufwand
36 Weitere Rekursionstypen Kaskadenartige Rekursion in mindestens einem Zweig mehr als ein rekursiver Aufruf Kennzeichen: Rekursive Aufrufe bilden Baumstruktur exponentiell wachsender Aufwand static void drawfamilytree(person p) { write(p.getname()); for (Person child : p.getchildren()) { drawfamilytree(child); drawlink(p, child);
37 Weitere Rekursionstypen Kaskadenartige Rekursion in mindestens einem Zweig mehr als ein rekursiver Aufruf Kennzeichen: Rekursive Aufrufe bilden Baumstruktur exponentiell wachsender Aufwand static void drawfamilytree(person p) { write(p.getname()); // rekursiver Aufruf in der Schleife => mehrfach for (Person child : p.getchildren()) { drawfamilytree(child); drawlink(p, child);
38 Weitere Rekursionstypen Verschachtelte Rekursion rekursive Aufrufe berechnen Parameter anderer rekursiver Aufrufe schwer überschaubar static int ackermann(int m, int n) { if (m == 0) return n + 1; if (n == 0) return ackermann(m - 1, 1); // rek. Aufruf im Parameter eines rek. Aufrufs return ackermann(m - 1, ackermann(m, n - 1));
39 Weitere Rekursionstypen Verschränkte Rekursion Aufruf einer anderen Funktion, in der die ursprüngliche Funktion aufgerufen wird (A() ruft B() auf, B() ruft wieder A() auf) static boolean a(int i) { if (i < 0) return false; return anti_a(i - 3); static boolean anti_a(int i) { if (i < 0) return true; return a(i + 2);
40 Weitere Rekursionstypen Endlosrekursion im Gegensatz zu Endlosschleifen nicht wirklich endlos äußert sich meist durch eine StackOverflowException deutet auf einen fehlenden oder fehlerhaften Basisfall hin
41 Weitere Rekursionstypen Endlosrekursion im Gegensatz zu Endlosschleifen nicht wirklich endlos äußert sich meist durch eine StackOverflowException deutet auf einen fehlenden oder fehlerhaften Basisfall hin static boolean blubb(int i) { // Basisfall fehlt return blubb(i + 1);
42 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5 Vorbereitung Blatt 4 Anmerkungen
43 Backtracking Problemlösung durch trial-and-error: man probiert solange alle möglichen Schritte, bis man die Lösung gefunden hat
44 Backtracking Problemlösung durch trial-and-error: man probiert solange alle möglichen Schritte, bis man die Lösung gefunden hat oft mit Hilfe von Rekursion umgesetzt: ein Schritt entspricht einem rekursiven Aufruf
45 Backtracking Problemlösung durch trial-and-error: man probiert solange alle möglichen Schritte, bis man die Lösung gefunden hat oft mit Hilfe von Rekursion umgesetzt: ein Schritt entspricht einem rekursiven Aufruf Backtracking : wird erkannt, dass der aktuelle Lösungsversuch nicht zielführend ist, werden solange Schritte rückgängig gemacht, bis der Versuch zielführend sein könnte und probiert damit weiter
46 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5 Vorbereitung Blatt 4 Anmerkungen
47 Anmerkungen Rekursionsformen auch entrekursiviert ist eine mögliche Antwort lineare Rekursion kann sich mit anderen spezielleren Rekursionsarten überschneiden immer die speziellste Rekursionsart nennen
48 Anmerkungen Rekursionsformen auch entrekursiviert ist eine mögliche Antwort lineare Rekursion kann sich mit anderen spezielleren Rekursionsarten überschneiden immer die speziellste Rekursionsart nennen Induktion so schnell wie möglich Induktionsvoraussetzung einsetzen, das erleichtert Auflösen hier enorm vorsicht: = wird stellenweise zu oder und umgekehrt nutzt L A TEX oder OpenOffice Math
49 Anmerkungen Noch Fragen?
50 Anmerkungen Noch Fragen? Danke für die Aufmerksamkeit!
Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011
Algorithmen und Datenstrukturen Tafelübung 4 Jens Wetzl 15. November 2011 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:
MehrRekursive Funktionen
Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?
MehrII.3.1 Rekursive Algorithmen - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -
MehrObjektorientierte Programmierung (ZQ1u2B)
Objektorientierte Programmierung (ZQ1u2B) Woche 4 Rekursion Christopher Scho lzel Technische Hochschule Mittelhessen 4. November 2015 Inhalt Rekursion Lineare Rekursion Verzweigte Rekursion Verschränkte
MehrRekursive Funktionen
Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?
MehrVorkurs Informatik WiSe 17/18
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann
MehrVorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
Mehr( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
MehrStand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
MehrEinführung in die Programmierung Wintersemester 2017/18
Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 7. Entrekursivierung
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 7 Entrekursivierung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Rekursive
MehrAlgorithmen und Datenstrukturen"
Lehrstuhl für Medieninformatik Universität Siegen Fakultät IV 9 Rekursion Version: WS 14/15 Fachgruppe Medieninformatik 9.1 9 Rekursion... Motivation: Rekursive Formulierung von Algorithmen führt in vielen
MehrKapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät
MehrInhalt Kapitel 2: Rekursion
Inhalt Kapitel 2: Rekursion 1 Beispiele und Definition 2 Partialität und Terminierung 3 Formen der Rekursion Endständige Rekursion 4 Einbettung 29 Beispiele und Definition Rekursion 30 Man kann eine Funktion
MehrFunktionale Programmierung ALP I. Die Natur rekursiver Funktionen SS Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Die Natur rekursiver Funktionen SS 2011 Die Natur rekursiver Funktionen Rekursive Funktionen haben oft folgende allgemeine Form: f :: a -> a f 0 = c f (n+1) = h (f n ) Diese Art der Definitionen
MehrRekursion. Sie wissen wie man Programme rekursiv entwickelt. Sie kennen typische Beispiele von rekursiven Algorithmen
Rekursion Sie wissen wie man Programme rekursiv entwickelt Sie kennen typische Beispiele von rekursiven Algorithmen Sie kennen die Vor-/Nachteile von rekursiven Algorithmen Einführung 2 von 40 Rekursiver
MehrKlassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
MehrAlgorithmen und Datenstrukturen"
Lehrstuhl für Medieninformatik Universität Siegen Fakultät IV 9 Rekursion Version: WS 14/15 Fachgruppe Medieninformatik 9.1 9 Rekursion... Motivation: Rekursive Formulierung von Algorithmen führt in vielen
MehrEinführung in die Informatik I
Einführung in die Informatik I Fortgeschrittene Rekursion Prof. Dr. Nikolaus Wulff Problematische Rekursion Mittels Rekursion lassen sich Spezifikationen recht elegant und einfach implementieren. Leider
MehrProgrammieren 1 C Überblick
Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrEinführung in die Programmierung Wintersemester 2010/11
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
MehrFriedrich-Alexander-Universität Erlangen-Nürnberg
Algorithmik 1 M. Philippsen, H. Stoyan, Friedrich-Alexander-Universität Erlangen-Nürnberg Informatik 2/8/9 Kapitel 8 - Rekursion 8.1 Einführung der Rekursion 8.2 Türme von Hanoi 8.3 Fibonacci-Zahlen 8.4
MehrAlgorithmik 1. Kapitel 8 - Rekursion. Friedrich-Alexander-Universität Erlangen-Nürnberg. Informatik 2/8 Programmiersysteme / Künstliche Intelligenz
Kapitel 8 - Rekursion Algorithmik 1 8.2 Türme von Hanoi 8.3 Palindromtest 8.4 Fibonacci-Zahlen 8.5 Skyline-Problem Teile-und-Herrsche Prof. Dr. Michael Philippsen / Prof. Dr. Herbert Stoyan Friedrich-Alexander-Universität
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrEinstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking
MehrGrundlagen der Programmierung (Vorlesung 15)
Grundlagen der Programmierung (Vorlesung 15) Ralf Möller, FH-Wedel Vorige Vorlesung Blöcke, Funktionen Auswertestrategien Inhalt dieser Vorlesung Prozeduren Rekursion Lernziele Grundlagen der systematischen
MehrEinstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
MehrInduktion und Rekursion
Induktion und Rekursion Induktion und Rekursion Vorkurs Informatik Theoretischer Teil WS 013/14. Oktober 013 Vorkurs Informatik WS 013/14 1/1 Vollständige Induktion Vorkurs Informatik WS 013/14 /1 Ziel
MehrKapitel 08: Rekursion und Terminierung Software Entwicklung 1
Kapitel 08: Rekursion und Terminierung Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Rekursion ist eine elegante Strategie zur Problemlösung, die es erlaubt eine Problemstellung
MehrFunktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung
Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen
MehrTag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
MehrDatenstruktur Baum und Rekursion Software Entwicklung 1
Datenstruktur Baum und Rekursion Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Datenstruktur Baum Bäume gehören zu den wichtigsten in der Informatik auftretenden Datenstrukturen.
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrWiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
MehrJAVA - Methoden - Rekursion
Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen
MehrHausaufgaben. zur Vorlesung. Vollständige Induktion. 1. Beweist folgende Formeln (zu beweisen ist nur die Gleichheit mit dem. i=1 (4 + i)!
WS 015/1 Hausaufgaben zur Vorlesung Vollständige Induktion 1. Beweist folgende Formeln zu beweisen ist nur die Gleichheit mit dem! -Zeichen : a 5 + + 7 + 8 + + 4 + n n 4 + i! nn+9 b 1 + + 9 + + n 1 n 1
Mehr4 Rekursionen. 4.1 Erstes Beispiel
4 Rekursionen Viele Algorithmen besitzen sowohl eine iterative als auch eine rekursive Lösung. Sie unterscheiden sich darin, dass die iterative Version meist einen etwas längeren Kode besitzt, während
MehrAlgorithmik 1. Kapitel 8 - Rekursion. Friedrich-Alexander-Universität Erlangen-Nürnberg. Informatik 2/8 Programmiersysteme / Künstliche Intelligenz
Kapitel 8 - Rekursion Algorithmik 1 8. Palindromtest 8.5 Skyline-Problem Teile-und-Herrsche Prof. Dr. Michael Philippsen / Prof. Dr. Herbert Stoyan Friedrich-Alexander-Universität Erlangen-Nürnberg Informatik
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrFHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt
Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme
MehrErste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrRekursion. L. Piepmeyer: Funktionale Programmierung - Rekursion
Rekursion 1 Iterative und rekursive Methoden Summe von 1 bis n berechnen: iterativ rekursiv public int sum(int n){ int result = 0; for(int i=1; i
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25
Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife
MehrKapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Mehr9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion
Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen
MehrInformatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 7. Albert-Ludwigs-Universität Freiburg Bernhard Nebel 31. Oktober 2014 1 31. Oktober 2014 B. Nebel Info I 3 / 20 Um zu, muss man zuerst einmal. Abb. in Public
Mehrpublic static void main(string[] args) {
Lösungen 55 Lösungen Aufgabe 1: Die Variable y enthält den Wert 1.0. Entsprechend den Prioritäten der beteiligten Operatoren / und = wird erst die Division und anschließend die Zuweisung durchgeführt.
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrMB2-PR2, WS10/11 Rekursive Unterprogramme S. 1
MB2-PR2, WS10/11 Rekursive Unterprogramme S. 1 Inhaltsverzeichnis Rekursive Unterprogramme...1 1. Das Beispiel fakultaet...1 2. Rekursive Funktionen mit Papier und Bleistift ausführen...1 3. Das Beispiel
MehrMathematische Rekursion
Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
MehrJAVA für Nichtinformatiker - Probeklausur -
JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils
Mehr2.4 Rekursion versus Iteration
2.4 Rekursion versus Iteration Beispiel Fakultätsfunktion (factorial): Spezifikation (= applikatives Programm): fact n = if n
MehrRekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: n i n! = i=1 für n > 0 1 für
MehrRekursive Funktionen und ihre programmtechnische Umsetzung
Rekursive Funktionen und ihre programmtechnische Umsetzung Klaus Kusche, Juli 2012 Inhalt Die Idee und ihre Programmierung Die Abarbeitung zur Laufzeit Die Speicherung der Daten Praktisches & Theoretisches
Mehr2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:
2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden
MehrFunktionale Programmierung ALP I. Funktionen höherer Ordnung. Teil 2 SS 2013. Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Funktionen höherer Ordnung Teil 2 SS 2013 Funktionen höherer Ordnung Nehmen wir an, wir möchten alle Zahlen innerhalb einer Liste miteinander addieren addall:: (Num a) => [a -> a addall [ = 0 addall
MehrProgrammieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Spezial Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe bei primitivem Datentypen (Wertkopie) public class MethodParameters
MehrKapitel 8: Rekursion. Grundbegriffe Beispiele. Teile-und-Herrsche-Verfahren. Endrekursion Rekursion und Keller
Kapitel 8: Rekursion Grundbegriffe Beispiele - Türme von Hanoi - Größter gemeinsamer Teiler - Graphische Darstellung von Bäumen - Linear verkettete Listen Teile-und-Herrsche-Verfahren - Potenzfunktion
MehrInformatik I Tutorium WS 07/08
Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 12 Tutor: Jens Kehne Tutorium 13: Dienstag, 05. Februar 2008 Agenda des heutigen Tutoriums
MehrProgrammierung und Modellierung
Programmierung und Modellierung Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 2. Rekursive Funktionen und Induktion 1. Dateien laden, Kommentare und Fallunterscheidungen 2. Rekursive Funktionen
Mehr4. Fortgeschrittene Algorithmen 4.1 Rekursion 4.2 Daten und Datenstrukturen 4.3 Bäume
4. Fortgeschrittene Algorithmen 4.1 Rekursion 4.2 Daten und Datenstrukturen 4.3 Bäume 4.1-1 4.1 Rekursion Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und
MehrÜbungsblatt 5. Thema: Algorithmen: Rekursion vs Iteration, O-Notation, Korrektheit
Informatik I WS 05/06 Prof. Dr. W. May Dipl.-Inform. Oliver Fritzen Dipl.-Inform. Christian Kubczak Übungsblatt 5 Ausgegeben am: Abgabe bis: 25.11.2005 6.12.2005 (Theorie) 9.12.2005 (Praktisch) Thema:
MehrRekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren
Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die
MehrVollständige Induktion
30. September 008 Gliederung 1 3 4 Gliederung 1 3 4 Gliederung 1 3 4 Gliederung 1 3 4 Die Peano Axiome für die Menge der Natürlichen Zahlen N I. 0 ist eine natürliche Zahl, d.h. 0 N. II. Jede natürliche
MehrJAVA - Rekursion
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Allgemeines Fakultät Fibonacci Türme von Hanoi Übungen Informatik 1 Folie 2 Ein Objekt
MehrThomas Gewering Benjamin Koch Dominik Lüke. (geschachtelte Schleifen)
Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 6 2. November 2010 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael Feldmann Thomas Gewering Benjamin
MehrRekursion. Beispiel Fakultät (iterativ) Rekursive Java-Implementierung. Beispiel Fakultät (rekursiv) n! = n
Rekursion Beispiel Fakultät (iterativ) Methoden können Methoden aufrufen Methoden können nicht nur andere Methoden aufrufen, sondern auch sich selbst Eine Methode, die sich selbst (direkt oder indirekt)
MehrRekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren
Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrALP I Induktion und Rekursion
ALP I Induktion und Rekursion WS 2012/2013 Vollständige Induktion (Mafi I) Die Vollständige Induktion ist eine mathematische Beweistechnik, die auf die Menge der natürlichen Zahlen spezialisiert ist. Vorgehensweise:
MehrMethoden und Funktionen
Programmieren mit Java Modul 4 Methoden und Funktionen Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Methoden 3 2.1 Methoden ohne Rückgabewert (Prozeduren)................ 3 2.2 Methoden mit Rückgabewert
MehrVollständige Induktion
30. September 008 Gliederung 1 3 4 Die Peano Axiome für die Menge der Natürlichen Zahlen N I. 0 ist eine natürliche Zahl, d.h. 0 N. II. Jede natürliche Zahl hat genau einen Nachfolger d.h. n : (n N! n
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrProgrammieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Special Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe: Wertkopie -By- public class MethodParameters { public
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
MehrNachklausur Bitte in Druckschrift leserlich ausfüllen!
Übungen zur Vorlesung Informatik für Informationsmanager WS 2005/2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Bernhard Beckert Dr. Manfred Jackel Nachklausur 24.04.2006 Bitte in Druckschrift
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf
Mehr2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
MehrSoftware Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
MehrInduktive Beweise und rekursive Definitionen
Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1
MehrRekursion. Selbstbezug, rekursive Funktionen, rekursive Prozeduren, Terminierung, Effizienz, Korrektheit, Rekursion und Induktion
Rekursion Selbstbezug, rekursive Funktionen, rekursive Prozeduren, Terminierung, Effizienz, Korrektheit, Rekursion und Induktion Ein kleines Problem Schreiben Sie eine Methode writebin, die eine Dezimalzahl
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die
MehrNumerische Verfahren und Grundlagen der Analysis
Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 26 1. Folgen R. Steuding (HS-RM)
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
MehrFachwissenschaftliche Grundlagen
Fachwissenschaftliche Grundlagen Vorlesung im Wintersemester 2011/2012, Universität Landau Roland Gunesch 8. Vorlesung Roland Gunesch (Mathematik) Fachwissenschaftliche Grundlagen 8. Vorlesung 1 / 25 Themen
MehrEINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
MehrSommersemester Jewgeni Rose. Technische Universität Braunschweig
P r o b e k l a u s u r Z u s a t z a u f g a b e n E i n f ü h r u n g i n d a s P r o g r a m m i e r e n Sommersemester 2013 Jewgeni Rose Technische Universität Braunschweig j.rose@tu-bs.de 1 Aufgabe
Mehr