1 / 10

Bestimmung des ggT zweier Zahlen Bestimmung nach Definition –Implementierung

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). Konsolen-Eingabe der Zahlen, deren ggT bestimmt werden soll.

limei
Download Presentation

Bestimmung des ggT zweier Zahlen Bestimmung nach Definition –Implementierung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Konsolen-Eingabe der Zahlen, deren ggT bestimmt werden soll. 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. Übung Nr. 1 (Aufgabenblatt) Lösung: Variante 1 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); } } Informatik Kurse 11-13

  3. 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

  4. StoppUhr eineStoppUhr = new StoppUhr();… Starten und Stoppen der StoppUhr Ausgabe der gestoppten Zeit Deklarartion und Erzeugen eines StoppUhr-Objekts Variante 2 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); Informatik Kurse 11-13

  5. Effizienz prüfen Informatik Kurse 11-13

  6. Euklid 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

  7. Raffael (1483-1520: Die Schule von Athen, Vatikanische Museen) Raffael 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

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

  9. Effizienz prüfen Informatik Kurse 11-13

  10. 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

More Related