Grundlagen der Programmierung
|
|
|
- Gotthilf Maus
- vor 9 Jahren
- Abrufe
Transkript
1 Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte Teile in Anlehnung an die Vorlesung von Prof. Dr. Faustmann (ebenfalls HWR Berlin) erstellt worden. Für die Bereitstellung dieses Vorlesungsmaterials möchte ich mich an dieser Stelle noch einmal recht herzlich bedanken Prof. Dr. Andreas Schmietendorf 1
2 Überblick zur Rekursion Prof. Dr. Andreas Schmietendorf 2
3 Überblick zur Rekursion Definition der Rekursion: Die Rekursion ist ein wichtiges Konzept der Mathematik und Informatik Selbstaufruf & Abbruchbedingung Ein Unterprogramm heißt rekursiv, wenn es sich direkt oder indirekt selbst aufruft. - direkte Rekursion eine rekursive Funktion ruft sich selbst auf - indirekte Rekursion eine Funktion A ruft zunächst eine Funktion B auf, die wiederum A aufruft In der Programmierung besteht eine rekursive Lösung eines Problems darin, dass Teilprobleme gelöst und zu einer Gesamtlösung verknüpft werden Prof. Dr. Andreas Schmietendorf 3
4 Überblick zur Rekursion Es gilt, dass alle iterativ lösbaren 1 Probleme ebenso durch Rekursion lösbar sind. Es existieren Programmiersprachen, die keine Schleifen kennen und nur die Rekursion als Ausdruck der Wiederholung nutzen. (z.b. Prolog, Lisp oder Logo). Rekursion kann meist mit Hilfe von Iteration simuliert werden. Oft sind rekursive Lösungen einfacher zu verstehen, verbrauchen aber für die Abarbeitung der Rekursion mehr Speicherplatz. Es stellt sich jeweils die Frage, wie weit die beiden Ansätze austauschbar sind und jeweils Vorteile bieten. 1 also durch Schleifenkonstrukte zu beschreibende Algorithmen Prof. Dr. Andreas Schmietendorf 4
5 Überblick zur Rekursion Anwendungsbereiche für die Rekursion: - rekursive Definition binärer Bäume - komplexe Entscheidungsprobleme der künstlichen Intelligenz - Sortier- und Suchalgorithmen - vielfältige mathematische Probleme - rekursive Bearbeitung verketteter Listen und Bäume Bewertung rekursiver Algorithmen : - führen zumeist nicht zur Verkleinerung der Codegröße - benötigen häufig mehr Speicher als das iterative Pendant - laufen meist langsamer als ihre iterativen Gegenstücke - Bieten aber ein gutes Werkzeug zum Lösen von Problemen Prof. Dr. Andreas Schmietendorf 5
6 Überblick zur Rekursion Übung: Welche Ausgabe wird durch den Aufruf des folgenden Programmfragments erzeugt? - Schreiben Sie das Ergebnis zunächst auf Papier! - Testen Sie das Fragment innerhalb eines ausführbaren Programms! Was verstehen Sie unter rekursiven Abstieg bzw. Aufstieg? Prof. Dr. Andreas Schmietendorf 6
7 Überblick zur Rekursion Die Fakultät ist das Produkt der ersten n natürlichen Zahlen: n! Iterative Lösung: Rekursive Lösung: int fakiterativ(int n){ } int erg = 1; for(int i=1; i<=n; i++){ } erg *= i; return erg; int fakrekursiv(int n){ if (n<=1){ return 1; else return n * fakrekursiv(n-1); Nachteil der rekursiven Lösung: Zusätzlicher Verbrauch von Speicher, da Aufrufe auf dem Stapel abgelegt werden. Die Speicherkomplexität ist linear, da je nach Größe des Parameters der benötigte Speicher wächst Prof. Dr. Andreas Schmietendorf 7 }
8 Überblick zur Rekursion Kriterien zum Verständnis der Rekursion: Verwendung von Unterprogrammen (in Java Methoden) - Mechanismus des Aufrufs eines Unterprogramms - Mechanismus des Rücksprungs aus dem Unterprogramm Begriff der Aktivierungsliste mit den Bestanteilen - Belegung der Parameter der aufgerufenen Methoden - Bei Beendigung wird ggf. ein Rückgabewert geliefert (optional) - Adresse wohin nach Beendigung der Methode zurückgekehrt werden soll Rekursion ist in einer Programmiersprache möglich, wenn für jede Iteration einer Methode eine eindeutige Aktivierungsliste (Aufrufparameter und Rücksprungsadresse auch Programmstackverwaltung) gespeichert wird Prof. Dr. Andreas Schmietendorf 8
9 Überblick zur Rekursion Aufrufbaum zur rekursiven Berechnung von 3! In Anlehnung an: Sanchez, J.; Canton, M.P.: Java 2 Wochenend Crashkurs, mitip-verlag, ISBN Prof. Dr. Andreas Schmietendorf 9
10 Überblick zur Rekursion Die richtige Durchführung dieser Berechnung organisiert der Compiler aus dem Text der rekursiven Definition. Der Programmierer muss sich nur darum kümmern, dass die entstehenden rekursiven Aufrufe immer einfacher werden und schließlich auf einen nichtrekursiven Fall führen. Bem.: Beim Beispiel der Fakultät führt die Berechnung von 3! zu den Aufrufen von fakrekursiv(3), fakrekursiv(2), fakrekursiv(1) und schließlich mit fakrekursiv(0) zu einem nicht rekursiven Aufruf. Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, 8. Auflage, Oldenbourg Verlag, München Prof. Dr. Andreas Schmietendorf 10
11 Überblick zur Rekursion Übung: Implementieren Sie den Euklidischen Algorithmus mit Hilfe einer rekursiven Methode static int ggt(int a, int b). Bem.: Eine Zahl t teilt sowohl x als auch y nur dann, wenn t sowohl y als auch x mod y teilt, weil x gleich x mod y plus einem Vielfachen von y ist. Quelle: Quelle: Sedgewick, R.: Algorithmen in Java 3. Auflage, Pearson Studium, Addison-Wesley, München,, Prof. Dr. Andreas Schmietendorf 11
12 Überblick zur Rekursion a 212 = 3 x b Beispiel: ggt(212, 66) 66 = 4 x = 1 x = 2 x = 2 x Rekursive Formulierung des mathematischen Problems zur Berechnung des ggt zweier Zahlen. Bei jedem Zeilenwechsel wird ggt(a,b) durch ggt(b,a mod b) ersetzt. Das bisherige b wird zum a bzw. das Ergebnis von a mod b zum b des folgenden Aufrufs. Der Abbruch erfolgt im Falle b = 0. 2 = 0 x Ergebnis: ggt(212, 66) = Prof. Dr. Andreas Schmietendorf 12
13 Überblick zur Rekursion Beispiele zur rekursiven Lösung des Euklidischen Algorithmus: Prof. Dr. Andreas Schmietendorf 13
14 Prof. Dr. Andreas Schmietendorf 14
15 Ein einführendes Beispiel: Anzeige der Ziffern einer Integerzahl in Form eines vertikalen Stapels und Konvertierung in das Binärformat Beispiel des vertikalen Stapels für die Zahl 255: Beispiel der Binären Darstellung für die Zahl 255: Gesucht rekursiver Algorithmus? Prof. Dr. Andreas Schmietendorf 15
16 Prof. Dr. Andreas Schmietendorf 16
17 Rekursionen können oft durch Wiederholungen ersetzt werden. Rekursive Lösungen sind zwar oft einfach zu verstehen, zur Laufzeit jedoch manchmal unwirtschaftlich. Ein Beispiel für diese Problematik ist die Ermittlung der Fibonacci- Zahlen: f 0 = 0 f 1 = 1 f n = f n-1 + f n-2 für n>=2 Die ersten vierzehn Fibonacci-Zahlen: Prof. Dr. Andreas Schmietendorf 17
18 Übung: Programmieren Sie eine Funktion int fibonaccirek(int n), die die n-te Fibonacci-Zahl auf rekursive Weise berechnet. Programmieren Sie eine Funktion int fibonacciiter(int n), die die n-te Fibonacci-Zahl auf iterative Weise berechnet. Erstellen Sie einen entsprechenden Aufrufbaum (z.b. für n = 4) und ermitteln Sie die Zeitkomplexität O der beiden Algorithmen Vergleichen Sie ihre theoretisch ermittelten Ergebnisse mit der Vermessung beider Algorithmen für wachsende n - long startmesswert = System.currentTimeMillis(); - long endmesswert = System.currentTimeMillis(); - long laufzeit = startmesswert endmesswert; Prof. Dr. Andreas Schmietendorf 18
19 Rekursive Lösung für Fibonacci-Zahlen: Prof. Dr. Andreas Schmietendorf 19
20 Iterative Lösung für Fibonacci-Zahlen: Prof. Dr. Andreas Schmietendorf 20
21 Reduktion der Problemgröße Prof. Dr. Andreas Schmietendorf 21
22 Durch Induktion zu lösende Probleme können per Rekursion bearbeitet werden. Um einen gegebenen Satz für eine beliebige natürliche Zahl zu beweisen, führt man zwei Schritte durch: - 1. Einen (trivialen) Beweis für n=0 oder n= Einen Beweis für n+1 unter der Annahme, dass der Satz für n gilt. Ein rekursiver Algorithmus nutzt diesen Zusammenhang aus: - 1. Reduktion des Problems auf ein Teilproblem geringeren Ausmaßes - 2. Direkte Lösung des zweiten Teilproblems Beispiel: Türme von Hanoi (siehe Übung) Prof. Dr. Andreas Schmietendorf 22
23 Türme von Hanoi: Gegeben sind 3 Pfähle und N Scheiben die sich auf die Pfähle stecken lassen. Die Scheiben unterscheiden sich in der Größe und stecken zu Beginn des Spiels auf einem der Pfähle. Die größte Scheibe N liegt ganz unten und die kleinste Scheibe 1 ganz oben. Aufgabe ist es den Stapel zur rechten Position zu ziehen, dabei gilt: - Es darf jeweils nur eine Scheibe gezogen werden - Keine Scheibe darf auf einer kleineren liegen Prof. Dr. Andreas Schmietendorf 23
24 1. Überlegung: - Rollen der Stäbe A und C vertauschen (d.h. C als Zwischenlager) - Turm von n-1 Scheiben von A nach B transportieren - Unterste Scheibe kann zum Schluss von A nach C gebracht werden 2. Überlegung: - Rollen der Stäbe A und C vertauschen (d.h. A als Zwischenlager) - Turm von n-1 Scheiben von B nach C transportieren - Unterste Scheibe kann zum Schluss von B nach A gebracht werden Prof. Dr. Andreas Schmietendorf 24
25 Prof. Dr. Andreas Schmietendorf 25
26 Quelle: Prof. Dr. Andreas Schmietendorf 26
27 Übung: Verwenden Sie das im Internet zur Verfügung gestellte Applet zur manuellen Lösung des Problems der Türme von Hanoi. - 3 Scheiben als Ausgangsbasis Anzahl benötigter Züge? - 4 Scheiben als Ausgangsbasis Anzahl benötigter Züge? - 5 Scheiben als Ausgangsbasis Anzahl benötigter Züge? Beobachten Sie die animierten Lösungen beschreiben Sie den mathematischen Zusammenhang zwischen der Anzahl Schreiben und der minimalen Anzahl von benötigten Zügen! Prof. Dr. Andreas Schmietendorf 27
28 Übung: Realisieren Sie ein Programm, das das Problem der Türme von Hanoi löst. Ihre Funktion versetzeturm sollte als Parameter die Anzahl der Scheiben und den Start- und Endeplatz (möglich sind A, B und C) erhalten. Bsp: versetzeturm( 3, "A", "B", "C" ); bewegt 3 Scheiben von Stab A über Stab B auf den Stab C. Geben Sie die Einzeloperation (z.b. Eine Scheibe von A nach B legen) als Textausgabe aus Prof. Dr. Andreas Schmietendorf 28
29 Quelle: Ullenboom, C.: Java ist auch eine Insel, Prof. Dr. Andreas Schmietendorf 29
30 Backtracking Prof. Dr. Andreas Schmietendorf 30
31 Übung optional: Ein klassisches Problem für die Verwendung von Rekursion ist das Acht-Damen-Problem: - Acht Damen sind auf einem Schachbrett so auszustellen, daß keine der Damen eine andere bedroht. - Schachbrett 64 Felder mit 8 Spalten und 8 Zeilen - Bedrohung gemäß den Schachregeln (gleiche Spalte, Zeile oder linke bzw. rechte Diagonale) Bedingung kann nur erfüllt werden, wenn jede Linie genau eine Damen enthält! Prof. Dr. Andreas Schmietendorf 31
32 Hinweis Acht-Damen-Problem: - Für das Acht-Damen-Problem existieren 92 Lösungen - Backtracking-Algorithmus (Lösungsbaum) Schrittweise Lösungssuche Nicht erfolgreiche Ansätze verwerfen Fortsetzung der Lösungssuche an einer vorherigen Stelle Prof. Dr. Andreas Schmietendorf 32
Vorkurs 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
Einstieg 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
Vorkurs 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,
Programmieren 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
Algorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
Folgen und Funktionen in der Mathematik
Folgen und Funktionen in der Mathematik Anhand von einigen exemplarischen Beispielen soll die Implementierung von mathematischen Algorithmen in C/C++ gezeigt werden: Reelle Funktionen in C/C++ Diese wird
2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
Beim rekursiven Aufruf einer Funktion wird jeweils ein Duplikat der gesamten Funktion im Speicher abgelegt.
Rekursion Unter Rekusion verstehen wir eine Funktion, die sich selbst aufruft. Da sie das nicht immerzu tun kann (das Programm würde ewig laufen) benötigt jeder rekursive Aufruf eine Abbruchbedingung!
Rekursive 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
Programmierung mit C Algorithmen
Programmierung mit C Algorithmen Informationen /7/ Robert Sedgewick Algorithmen in C. 742 Seiten, ISBN 3-827-37182-1. /8/ Kyle Loudon Algorithmen mit C, ISBN 3-4897-211653-0. Online-Buch "C von A bis Z",
Rekursive 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: nn ii nn! = ii=1 für nn > 0
Rekursive 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
Kasparov versus Deep Blue. Till Tantau. Institut für Theoretische Informatik Universität zu Lübeck
Kasparov versus Deep Blue Institut für Theoretische Informatik Universität zu Lübeck 18. Vorlesung zu Informatik A für MLS 14. Dezember 2006 Die Lernziele der heutigen Vorlesung und der Übungen. 1 Das
Beispiel 1: Fakultät
16. Rekursion Beispiel 1: Fakultät Rekursive Definition der Fakultät (Mathematik) n! = 1 falls n=0 n*(n-1)! falls n>0 Programmierung mittels einer rekursiven Funktion in C++ double fakultaet(int n) if
4 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
11. Rekursion. - Wiederholung von Anweisungen: durch Iteration und Rekursion - Anwendungsfälle der Rekursion
11. Rekursion 258 K. Bothe, PI1, WS 2000/01 259 ' ( ) - Wiederholung von Anweisungen: durch Iteration und Rekursion - Anwendungsfälle der Rekursion - induktiv definierte Funktionen - rekursive Problemlösungen
11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n!
Mathematische Rekursion 11. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration, Lindenmayer Systeme Viele mathematische Funktionen sind sehr natürlich
Rekursive Algorithmen
Rekursive Algorithmen In der Mathematik sind viele Funktionen rekursiv definiert. Der Begriff der Rekursion beinhaltet, dass zur Definition einer Funktion diese selbst wieder mit benutzt wird, allerdings
11. Rekursion, Komplexität von Algorithmen
11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv
12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! =
Lernziele Sie verstehen, wie eine Lösung eines rekursives Problems in Java umgesetzt werden kann. Sie wissen, wie Methoden in einem Aufrufstapel abgearbeitet werden. 12. Rekursion Mathematische Rekursion,
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 [email protected] 1 Kapitel 2 Algorithmische [email protected] 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen
9. 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
FHZ. 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
Speicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
Software Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Rekursive Prozeduren zu charakterisieren. Terminierung von rekursiven Prozeduren mit Hilfe von geeigneten Abstiegsfunktionen
Kapitel 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
Grundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1)
Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1) Anweisungen: Eingabeanweisungen, z.b. Eingabe: x Ausgabeanweisungen, z.b. Ausgabe: Das Maximum ist, max Die Symbole x und max werden
JAVA - 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
Einführung in die Informatik I
Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing
Stack. Seniorenseminar Michael Pohlig
Stack Seniorenseminar 21.06.2013 Michael Pohlig ([email protected]) Übersicht 1. Axiomatik eins Kellers und seine Software- Realisierung 2. Bedeutung der Rekursion in der Mathematik 3. Rekursive Programmierung.
Informatik 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
Informatik für Schüler, Foliensatz 18 Rekursion
Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 26. März 2009 1/10 Informatik für Schüler, Foliensatz 18 Rekursion Prof. G. Kemnitz Institut für Informatik, Technische Universität
Inhalt. 3. Spezielle Algorithmen
Inhalt 0. Rechner und Programmierung für Kommunikationstechniker und Mechatroniker 1. Algorithmen - Wesen, Eigenschaften, Entwurf 2. Darstellung von Algorithmen mit Struktogrammen und Programmablaufplänen
Ü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
Rekursion. 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
Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
12. 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
Komplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 [email protected] 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
4 Programmieren in Java III
1 4 Programmieren in Java III 4.1 Rekursive Funktionen und Prozeduren Ein Unterprogramm kann sich selbst aufrufen. Dabei sind, in einer korrekt entworfenen Programmiersprache, die lokalen Variablen der
Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.
1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Beispiele für Algorithmen Im folgenden Abschnitt sollen ausgewählte
Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung Sebastian Küpper Redundanz Rekursiver Lösungen Rekursion kann elegante Bescheibungen zur Problemlösung ergeben
Ü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
Programmiertechnik Übungen zu Klassen & -methoden
Programmiertechnik Übungen zu Klassen & -methoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Ein Verfahren, den größten gemeinsamen Teiler (ggt) zweier Zahlen a und b, a
Einfü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,
II.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 -
Algorithmen 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
Teil 14: Rekursive Programmierung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden
Teil 14: Rekursive Programmierung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 14 Rekursive Programmierung... 3 14.1 Die Fakultätsfunktion...
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Elementare Datenstrukturen Array Linked List Stack Queue Tree (Feld) (Verkettete Liste) (Stapel) (Warteschlange) (Baum) Einschub:
Grundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
Mathematische 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
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
Klassenvariablen, 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
Kapitel 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
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
Institut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013/14 Aufgabenblatt 5 2. Dezember
Willkommen zur Vorlesung. Algorithmen und Datenstrukturen
Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:
Algorithmen 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
Rekursive 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?
Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1
Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm ([email protected]) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
Methoden. 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
Inhalt. 3. Spezielle Algorithmen
Inhalt 0. Rechner und Programmierung für Kommunikationstechniker und Mechatroniker 1. Algorithmen - Wesen, Eigenschaften, Entwurf 2. Darstellung von Algorithmen mit Struktogrammen und Programmablaufplänen
Informatik II Übung 10. Pascal Schärli
Informatik II Übung 0 Pascal Schärli [email protected] 09.0.0 Was gibts heute? Best-of Vorlesung: Teile und Herrsche Türme von Hanoi Mergesort O-Notation Vorbesprechung: U0A, - Mergesort U0A Türme
1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen Ideen zur Bestimmung der Länge einer Liste: 1. Verwalte ein globales Attribut int laenge. Fügt man ein Element zur Liste oder löscht es, wird
Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe
Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203
Inhaltsübersicht Vorwort 15 Vorwort zur deutschen Ausgabe 22 Kapitel 1 Elemente der Programmierung 25 Kapitel 2 Funktionen und Module 203 Kapitel 3 Objektorientierte Programmierung 335 Kapitel 4 Algorithmen
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:
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
Stand 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
4. 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
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.
Auswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer
C++ - Kontrollstrukturen Teil 2
C++ - Kontrollstrukturen Teil 2 Reiner Nitsch 8417 [email protected] Schleife und Verzweigung kombiniert SV initialisieren while(b1) if(b2) w f V1 V2 SV Richtung Ziel verändern Wichtiger Baustein vieler
Komplexitä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
Einstieg 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
Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
Rekursion. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Divide et Impera im Römischen
Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet.
3.6 Rekursion Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet. Klassisches Beispiel: Berechnung von n! (Fakultät
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
11. Rekursion, Komplexität von Algorithmen
nwendung der Rekursion 11. Rekursion, Komplexität von lgorithmen Teil 2 Java-eispiele: Power1.java Hanoi.java Rekursiv definierte Funktionen - Fibonacci-Funktion - Fakultät, Potenz -... Rekursiver ufbau
