Thema: Fibonacci-Zahlen

Slides:



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

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einführung in die Programmierung Ausführbare Klassen
Imperative Programmierung -Entwicklungswerkzeuge
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
SWITCH - Anweisung.
IF-ELSE-IF-Ketten Weiter mit PP..
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Imperative Programmierung Funktionen und Parameter
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
DVG Einführung in Java1 Einführung in JAVA.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Bestimmung des ggT zweier Zahlen
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
Verzweigung.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
© 2003 Pohlig Informatikgrundkurs (Pohlig-Häberle) 1 5.Was ist eine Syntax? – Ein bierseliger Bayer im Himmel 5.1 Syntax des frohlockenden Bayern Alois.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Rekursive Funktionen (Fakultät)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Informatik 1 Übung 4.
2.4 Rekursion Klassifikation und Beispiele
Objektorientiertes Konstruieren
Die Klasse String und ihre Methoden
Unterprogramme in JAVA
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java Programme nur ein bisschen objektorientiert.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
JAVA lernen: Methoden.
Rekursion – Speicherverwaltung
Mit der Turtle Java Programmieren
Cäsar-Verschlüsselung
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Cäsar-Verschlüsselung
Informatik Kurse
Reklursive Grafiken Teil I
 Präsentation transkript:

Thema: Fibonacci-Zahlen Leonardo Pisano, genannt Fibonacci geb. vermutlich 1170 – gest. vermutlich 1250 Ort: Pisa Thema: Fibonacci-Zahlen Informatik Kurse 11-13

Übung 1 Notieren Sie die Seitenlängen der Quadrate, wenn das erste Quadrat eine Seitenlänge 1 hat. Setzen Sie die Folge fort. Erkennen Sie ein Bildungsgesetz? Informatik Kurse 11-13

fib(n) = fib(n-1) + fib(n-2) mit fib(1) = fib(2) = 1 2-fach-Rekursion Lösung 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ... fib(n) = fib(n-1) + fib(n-2) mit fib(1) = fib(2) = 1 2-fach-Rekursion Basisfall Informatik Kurse 11-13

Übung 2 Siehe Aufgabenblatt Lösung Informatik Kurse 11-13

Übung 3: Fibonacci-Demo-Programm Lösung: rekursive Methode import info1.*; public class FibonacciDemo{ public static void main(String[] args){ System.out.print("Geben Sie ein Zahl an: "); int a = Console.in.readInt(); System.out.println("fib("+a+") = " + fibonacci(a)); } private static int fibonacci(int a){ if (a==1||a==2) return 1; else return fibonacci(a-1)+fibonacci(a-2); Informatik Kurse 11-13

Übung 4 Bauen Sie in das Demoprogramm eine Uhr ein, um den zeitlichen Aufwand bei der Berechnung von Fibonacci-Zahlen zu messen Lösung: import info1.*; public class FibonacciDemoUhr{ public static void main(String[] args){ StoppUhr uhr = new StoppUhr(); System.out.print("Geben Sie ein Zahl an: "); int a = Console.in.readInt(); uhr.starten(); int fib = fibonacci(a); uhr.stoppen(); System.out.println("fib("+a+") = " + fib); System.out.println("Rechendauer: "+ uhr); } private static int fibonacci(int a){ if (a==1||a==2) return 1; else return fibonacci(a-1)+fibonacci(a-2); Informatik Kurse 11-13

Übung 5 Finden Sie eine grafische Darstellung, aus der man ablesen kann, was in welcher Reihenfolge berechnet wird, wenn man mit unserem Programm Fibonacci-Zahlen bestimmen lässt. Mögliche Lösung: Informatik Kurse 11-13

Typ long, um größere Zahlen berechnen zu können Übung 6 Finden Sie eine nicht rekursive Methode zur Berechnung der Fibonacci-Zahlen import info1.*; public class FibonacciDemo2 { //gültig bis n= 92 public static void main (String[] args) { System.out.print("a: "); int a = Console.in.readInt(); System.out.println("fib("+a+") = "+fibonacci(a)); } private static long fibonacci(int a){ long fib = 1; for (long fib1 = 1, fib2 = 1, i=3; i <= a; i++){ fib = fib1 + fib2; fib1 = fib2; fib2 = fib; return fib; Typ long, um größere Zahlen berechnen zu können Es können mehrere lokale Variable definiert werden Informatik Kurse 11-13