Bestimmung des ggT zweier Zahlen

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Rekursive Grafiken Reklursive Grafiken.
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.
IF-ELSE-IF-Ketten Weiter mit PP..
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung.
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.
Imperative Programmierung Funktionen und Parameter
Automatisches Testen und Bewerten von Java-Klassen
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
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 Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Eigene Metoden (Turtle-Paket (C) Taulien 2003)
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Thema: Fibonacci-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.
Rekursive Funktionen (Fakultät)
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
2.4 Rekursion Klassifikation und Beispiele
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Objektorientiertes Konstruieren
Die Klasse String und ihre Methoden
Optimale Ursprungsgerade
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Übungen GPanel Quadratfenster mit pixelunabhängigen Windowkoordinaten (doubles) Zweckmässige Standardwerte (defaults) 01 x 0 1 y // WbzEx5.java.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014/15 Instanzmethoden
Programmiervorkurs WS 2014 Referenzdatentypen
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
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Natürliches Programmieren
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.
Übersicht Nachtrag zu Ausdrücken
Ü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-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Mit der Turtle Java Programmieren
Cäsar-Verschlüsselung
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Mit Java die Turtle steuern
Cäsar-Verschlüsselung
 Präsentation transkript:

Bestimmung des ggT zweier Zahlen Bestimmung nach Definition –Implementierung Euklidscher Algorithmus – Implementierung Aufwand – Effizienz von Algorithmen Erweiterung der Klasse Mathematik die Methode ggt(int a, int b) Informatik Kurse 11-13

Übung Nr. 1 (Aufgabenblatt) Lösung: Variante 1 Konsolen-Eingabe der Zahlen, deren ggT bestimmt werden soll. import info1.*; public class GgT1{ public static void main(String[] args){ int ggT = 1; System.out.print("erste Zahl: "); int a = Console.in.readInt(); System.out.print("zweite Zahl: "); int b = Console.in.readInt(); for (int i = 1; i <= Math.min(a,b); i++){ if ((a%i==0)&&(b%i==0)) ggT = i; } System.out.println(ggT); Teilt i a und b restlos, so kommt i als ggT in Frage. Der letzte i-Wert ist der gesuchte ggT. Er wird am Schluss ausgegeben. Prüft mit der 1 beginnend, ob i die Zahlen a und b restlos teilt. Ende bei der Kleineren der beiden. Informatik Kurse 11-13

Es dauert eine geraume Zeit, bis das Ergebnis erscheint. Test Geben Sie für a den Wert 162019746 und für B den Wert 115720390 ein Es dauert eine geraume Zeit, bis das Ergebnis erscheint. Wir bauen in unser Programm eine Stoppuhr ein, die die Zeit stoppt, die zur Durchführung des Algorithmus‘ benötigt wird. Wir benutzen dazu ein Objekt der Klasse StoppUhr. Benutze deren Methoden starten() und stoppen(). Wenn das Objekt eineStoppuhr heißt. Lässt sich gestoppte Zeit mit System.out.println(eineStoppUhr) auf dem Bildschirm ausgeben. Informatik Kurse 11-13

eineStoppUhr.starten(); for (int i = 1; i <= Math.min(a,b); i++){ Variante 2 StoppUhr eineStoppUhr = new StoppUhr(); … Deklarartion und Erzeugen eines StoppUhr-Objekts Starten und Stoppen der StoppUhr eineStoppUhr.starten(); for (int i = 1; i <= Math.min(a,b); i++){ if ((a%i==0)&&(b%i==0)) ggT = i; } eineStoppUhr.stoppen(); System.out.println(ggT); System.out.println(eineStoppUhr); Ausgabe der gestoppten Zeit Informatik Kurse 11-13

Effizienz prüfen Informatik Kurse 11-13

Möglicherweise verbirgt sich hinter dem Namen Euklid mehrere Personen. Lebensdaten: ca. 365 – ca. 300 Möglicherweise verbirgt sich hinter dem Namen Euklid mehrere Personen. 13 Bücher zu den Elementen zusammengefasst. Axiomatischer Aufbau der Mathematik. Formulierung von Algorithmen und deren Beweise Informatik Kurse 11-13

Raffael (1483-1520: Die Schule von Athen, Vatikanische Museen) Euklid unterrichtet seine Schüler. Als Vorlage für Euklid diente Raffel das Portrait von Bramante, einem der Bauleiter des Peterdomes in Rom Informatik Kurse 11-13

Der erweiterte Euklidsche Algorithmus Gesucht ggT(792,75) =3 eineStoppUhr.starten(); int r; do{ r = a%b; a = b; b = r; } while(b!=0); a 792 = 75 + 10 . 42 b r 75 = 42 1 . + 33 42 = 33 1 . + 9 33 = 9 3 . + 6 9 = 6 1 . + 3 6 = 3 2 . + 0 Informatik Kurse 11-13

Effizienz prüfen Informatik Kurse 11-13

Effiziente Methode in die Klasse Mathematik übernehmen public static int ggT(int a, int b){     int ggT = 1;     int r;     do{        r = a%b;        a = b;        b = r;     } while(b!=0);     return a; } import info1.*;  public class GgTTest {      public static void main (String[] args) {       System.out.print("1. Zahl: ");       int a = Console.in.readInt();       System.out.print("2. Zahl: ");       int b = Console.in.readInt();       System.out.println("der ggT("+a+","+b+") ist: "+                          Mathematik.ggT(a,b));    }  } Informatik Kurse 11-13