Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Bestimmung des ggT zweier Zahlen

Ähnliche Präsentationen


Präsentation zum Thema: "Bestimmung des ggT zweier Zahlen"—  Präsentation transkript:

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 Ü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

3 Es dauert eine geraume Zeit, bis das Ergebnis erscheint.
Test Geben Sie für a den Wert und für B den Wert 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 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

5 Effizienz prüfen Informatik Kurse 11-13

6 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

7 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

8 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 = b r 75 = 42 = 33 = 9 = 6 = 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


Herunterladen ppt "Bestimmung des ggT zweier Zahlen"

Ähnliche Präsentationen


Google-Anzeigen