Rekursive Funktionen
|
|
|
- Eike Pfeiffer
- vor 9 Jahren
- Abrufe
Transkript
1 Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. Rekursive Funktionen OOPM, Ralf Lämmel
2 Was ist Rekursion? (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 190
3 Eine Illustration von Rekursion
4 192 Eine (rekursive) mathematische Definition von! (Fakultät) n! = 1, falls n = 0 n * (n-1)!, falls n > 1
5 193 Rekursive Berechnung von! 5! = 5 * 4! = 4 * 3! = 3 * 2! = 2 * - 1! = 1 * - 0! = 1
6 Rekursive Definition von! in Java Umsetzung in Java: // Assume n >= 0 public static int factorial(int n) { if (n == 0) return 1; else return n * factorial(n-1); (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau Siehe package algorithm.factorial 194
7 195 Aufruf (nicht-) rekursiver Funktionen public class Program { public static int divby2(int x) { return x / 2; public static void main(string[] args) { int x = 5; int y = divby2(x); System.out.println(y);
8 196 Die Realisierung eines Funktionsaufrufs entspricht dem Entfalten der Funktionsdefinition. Dabei werden formale Parameter durch aktuelle Parameter ersetzt. int x = 5; int y = divby2(x); System.out.println(y); int x = 5; int y = x / 2; System.out.println(y); Die Entfaltung ist statisch möglich für nichtrekursive Funktionen. Die Entfaltung ist notwendigerweise dynamisch (zur Laufzeit) nötig für rekursive Funktionen.
9 197 Rekursive Funktionsdefinitionen Teile der Definition Basisfall Nichtrekursive Berechnung Rekursiver Fall Rekursive(r) Aufruf(e) Verwertung der (des) Aufrufe(s) Nichtrekursive Berechnung Die Auswahl der Teile erfolgt über Bedingung(en). Es kann auch mehre Fälle jeder Art geben.
10 198 Rekursive Definition von! // Assume n >= 0 public static int factorial(int n) { if (n == 0) return 1; else Abbruchbedingung Basisfall return n * factorial(n-1); Rekursiver Fall
11 199! mittels ternärem Operator // Assume n >= 0 Angenommene Vorbedingung (oft ausgelassen) public static int factorial(int n) { return (n == 0)? Abbruchbedingung 1 Basisfall : n * factorial(n-1); Rekursiver Fall
12 200 Die Fibonacci-Folge Anzahl neugeborener Kaninchen nach n Jahren: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,... Rekursive Funktionsdefinition: fib(n) = 0, falls n = 0 1, falls n = 1 fib(n-2) + fib(n-1), n >= 2
13 Die Fibonacci-Folge public static int fib(int n) { if (n == 0) return 0; else if (n == 1) return 1; 1. Basisfall 2. Basisfall else return fib(n - 2) + fib(n - 1); 2 rekursive Aufrufe (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau Siehe package algorithm.fibonacci 201
14 202 Die Fibonacci-Folge (mit Verwendung des ternären Operators) public static int fib(int n) { return n == 0? 0 : n == 1? 1 : fib(n - 2) + fib(n - 1);
15 203 Anmerkung zur Wahl rekursiver Definitionen Folgende Attribute sind relativ: Eleganz In-/effizienz Beispiel - Die Fibonacci-Folge: Exponentielle Explosion von Aufrufen fib(n) benötigt nur 2 direkte Vorgänger. Effizientere Formulierung darum naheliegend Overhead Stichwort Compiler-Optimierungen
16 204 Umwandlung der ineffizienten, (binär-)rekursiven Fibonacci-Funktion in eine effiziente, entweder (linear-)rekursive oder iterative Darstellung Naive, rekursive Formulierung Exponentielle Explosion von Aufrufen Schlüsseleigenschaft fib(n) benötigt nur 2 direkte Vorgänger. Effiziente, rekursive Formulierung Vorgänger werden als Parameter gereicht. Effiziente, iterative Formulierung Vorgänger werden in Variablen gehalten.
17 205 Effiziente, rekursive Formulierung public static int fib(int n) { return fib(n,0,1); public static int fib(int n, int n1, int n2) { return n == 0? n1 : fib(n-1, n2, n1 + n2); Wir überladen den Funktionsnamen. (Wir verwenden verschiedene Argumenttypen.)
18 206 Effiziente, iterative Formulierung public static int fib(int n) { int n1 = 0; int n2 = 1; for (; n!= 0; n--) { int m1 = n1; int m2 = n2; n1 = m2; n2 = m1 + m2; return n1;
19 207 Türme von Hanoi Annahmen: N Scheiben verschiedener Durchmesser Stapelung mit abnehmendem Durchmesser 3 Plätze: A, B, C Ziel: Bewegen aller Scheiben von A nach C
20 208 Türme von Hanoi - Illustration Startkonfiguration Move 1 Move 2 Move 3 Move 4 Move 5 Move 6 Endkonfiguration
21 209 Türme von Hanoi - Ansatz Ziel: Verschiebung von N Scheiben von A nach C Annahme: Verschieben von N-1 Scheiben möglich Schritte: Verschiebe N-1 Scheiben von A nach B Verschiebe letzte (große) Scheibe von A nach C Verschiebe N-1 Scheiben von B nach C
22 Türme von Hanoi public class Program { public static void move( int n, String from, String temp, String to) { if (n == 0) return; move(n-1, from, to, temp); System.out.println( "Move disc " + n + " from " + from + " to " + to); move(n-1, temp, from, to); public static void main(string[] args) { move(3,"a","b","c"); (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau Siehe package algorithm.hanoi 210 Move disc 1 from A to C Move disc 2 from A to B Move disc 1 from C to B Move disc 3 from A to C Move disc 1 from B to A Move disc 2 from B to C Move disc 1 from A to C
23 211 Formen von Rekursion Primitive Rekursion Allgemeine Rekursion Endrekursion Lineare Rekursion Binäre Rekursion Indirekte Rekursion
24 212 Primitive Rekursion Funktion über induktive Struktur von nat. Zahlen Schemavariablen: g, h Schema: f(n) = g, falls n=0 h(n,f(n-1)), sonst Termination ist garantiert. Bestimme g und h! public static int factorial(int n) { if (n == 0) return 1; else return n * factorial(n-1);
25 213 Beispiel: even/odd (Primitiv-rekursive Variante) // Assume n >= 0 public static boolean even(int n) { return (n<=1)? (n==0) :!even(n-1); // Assume n >= 0 public static boolean odd(int n) { return (n<=1)? (n==1) :!odd(n-1); Eine einfache Verallgemeinerung der primitiven Rekursion mit einem Basisfall > 0
26 214 Allgemeine Rekursion Keine Einschränkungen an Rekursion Beispiel: McCarty 91-er Funktion: f(n) = n-10, falls x > 100 f(f(n+11)), sonst Eigenschaften: f(n) = 91 für alle n <= 101 f(n) = n - 10 für alle n > 101
27 215 Beispiel: McCarty 91-er Funktion public static int f(int n) { if (n > 100) return n - 10; else return f(f(n+11)); f(n) = 91 für alle n <= 101 f(n) = n - 10 für alle n > 101
28 216 Endrekursion Schemavariablen: g, p, r Schema: f(x) = g(x), falls p(x) f(r(x)), sonst Der rekursive Aufruf ist die letzte Operation auf jeder Ebene. Bedeutung: iterative Implementation trivial Endrekursive Formulierung oft relativ einfach Beispiele:!, even/odd nach Anpassung
29 217 Beispiel: even/odd (Primitiv-rekursive Variante) // Assume n >= 0 public static boolean even(int n) { return (n<=1)? (n==0) :!even(n-1); // Assume n >= 0 public static boolean odd(int n) { return (n<=1)? (n==1) :!odd(n-1);
30 218 Beispiel: even/odd (End-rekursive Variante) // Assume n >= 0 public static boolean even(int n) { return (n<=1)? (n==0) : even(n-2); // Assume n >= 0 public static boolean odd(int n) { return (n<=1)? (n==1) : odd(n-2);
31 219 Umwandlung von Endrekursion in eine iterative Formulierung Rekursiv: f(x) = g(x), falls p(x) f(r(x)), sonst Iterativ: f(x) = Solange p(x) nicht gilt x = r(x) Gib g(x) zurück.
32 220 Beispiel: even/odd (End-rekursive Variante) public static boolean even(int n) { return (n<=1)? (n==0) : even(n-2); public static boolean even(int n) { while (!(n<=1)) n -= 2; return n==0;
33 221 Umwandlung von primitiver nach End- Rekursion am Beispiel der Fakultät (Verwendung eines Akkumulatorargumentes) Primitive Rekursion: n! = 1, falls n = 0 n * (n-1)!, sonst Endrekursion: n! = factorial(1,n) factorial(x,n) = x, falls n = 0 factorial(x*n, n-1), sonst
34 222 Beispiel: Fakultät (End-rekursive Variante) public static int factorial(int n) { return (n == 0)? 1 : n * factorial(n-1); public static int factorial(int n) { return factorial(1,n); public static int factorial(int x, int n) { return (n==0)? x : factorial(n*x,n-1); Wir überladen den Funktionsnamen. (Wir verwenden verschiedene Argumenttypen.)
35 223 Lineare Rekursion Verallgemeinerung von: Primitive Rekursion Endrekursion Schemavariablen: g, p, h, r Schema: f(x) = g(x), falls p(x) h(x,f(r(x))), sonst Einfache Verallgemeinerung: f kann mehrmals referenziert werden aber nur einmal ausgewertet werden.
36 224 Binäre Rekursion Verallgemeinerung von linearer Rekursion Zwei, verschiedenartige rekursive Aufrufe. Beide Aufrufe fallen auch dynamisch an. Beispiel: Die Fibonacci-Funktion
37 225 Indirekte Rekursion Eine Funktion ruft sich nicht (nur) direkt selbst auf. Stattdessen sind mehrere Funktionen beteiligt. Indirekte Rekursion erleichtert Modularisierung. Beispiel: even(n) = true, falls n = 0 odd(n-1), sonst odd(n) = false, falls n = 0 even(n-1), sonst
38 Beispiel: even/odd (Indirekt-rekursive Variante) // Assume n >= 0 public static boolean even(int n) { if (n==0) return true; else return odd(n-1); // Assume n >= 0 public static boolean odd(int n) { if (n==0) return false; else return even(n-1); (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 226
39 227 Beispiel: even/odd (Kompaktere indirekt-rekursive Variante) // Assume n >= 0 public static boolean even(int n) { return (n==0) odd(n-1); // Assume n >= 0 public static boolean odd(int n) { return!(n==0) && even(n-1);
40 Zusammenfassung Rekursive Definitionen sind oft elegant. Rekursion kann Kosten verursachen. Konvertierung rekursiv nach iterativ Prinzipiell immer möglich Praktisch oft elegant möglich Ausblick Nächstes Mal: Einfache Sortieralgorithmen Anwendung von Feldern Anwendung von rekursiven Funktionen
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?
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 -
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,
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
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
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
JAVA - 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
Einfü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
Algorithmen und Datenstrukturen 04
15. November 2011 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5
Programmiertechnik Methoden, Teil 2
Programmiertechnik Methoden, Teil 2 Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Rekursion Oliver Haase Hochschule Konstanz 2 Definition Was ist Rekursion? Allgemein: Rekursion ist die Definition
Informatik Hochschule Mainz Geoinformatik und Vermessung. Wiederholung. Frohes Fest und Guten Rutsch!
Wiederholung Frohes Fest und Guten Rutsch! Inhaltsverzeichnis Programme kompilieren...1 Eclipse bedienen...2 Rechnen mit Literalen...2 Rechnen mit Variablen...2 Sequenzielle Anweisungen...3 Selektive Anweisungen...3
Vor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel
Wer ist denn das? Vor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel Programmspezifikation mit Vor- und Nachbedingungen (C) 2007-2018, Ralf Lämmel, Universität Koblenz-Landau 2 3 Gesprächsprotokoll
Lösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
Sortieralgorithmen OOPM, Ralf Lämmel
Unterhaltet Euch mal mit Euren Großeltern wie Sortieren früher funktionierte! Sortieralgorithmen OOPM, Ralf Lämmel 230 Eine unsortierte Liste 7 3 2 5 2 3 5 7 Die sortierte Liste 231 Wiederholung: Das Problem
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
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:
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
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
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
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
Software 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
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
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
CoMa 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)
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
Inhalt 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
Algorithmen und Datenstrukturen 04
(17. Mai 2012) 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 O-Kalkül Allgemein Wichtige Formeln
Schnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
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
Programmierung mit Feldern OOPM, Ralf Lämmel
Übung: Deklarieren Sie ein entsprechendes Feld in Java! Programmierung mit Feldern OOPM, Ralf Lämmel Einführendes Beispiel Eingabe: ein Feld von int-werten public static int sum(int[] a) { int result =
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.
! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
Erste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: [email protected] Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
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
9 Türme von Hanoi Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleine
9 Türme von Hanoi 1 2 3 Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleineren Ring gelegt werden. 9 Türme von Hanoi 1 2 3 Bewege
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
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
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
Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
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
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
JAVA 04: Funktionen, Parameter und globale und lokale Variablen.
Lernkartenkurs JAVA 04: Funktionen, Parameter und globale und lokale Variablen. panitz Zusammenfassung In diesem Kurs finden sich meist recht einfache Fragen, die sich mit Funktionen und Variablen beschäftigen.
Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
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
Rekursion. 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
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
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
Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung [email protected] 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
Musterlösung Stand: 5. Februar 2009
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
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
JAVA - Methoden
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können
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,
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
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende
Aufgabe 1 (12 Punkte)
Aufgabe 1 (12 Punkte) Schreiben Sie eine Klasse public class ZinsesZins, die zu einem gegebenen Anfangskapital von 100,00 die Kapitalentwicklung bei einer jährlichen nachschüssigen Verzinsung in Höhe von
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
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
Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem
Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung
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
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
Fakultät IV Elektrotechnik/Informatik
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
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
Algorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben
Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester
1 2 3 Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleineren Ring gelegt we
1 2 3 Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleineren Ring gelegt werden. 1 2 3 Bewege Stapel von links nach rechts. In
Grundlagen 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
Methoden 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
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
Komplexität von Algorithmen OOPM, Ralf Lämmel
Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i
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
II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode
Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode folgt im Anschluss. Beispielcode Es gibt eine Klasse Benutzerverwaltung, welche eine Liste mit Benutzern
Programmierkurs 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
Vorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
Ü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
Übung Informatik I - Programmierung - Blatt 2
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
Nachklausur 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
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
Ü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
System.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
Programmieren und Problemlösen
Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe
Rekursion. 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
