Programmierung

Euklidischer Algorithmus - Java


 
  1. Aufgabe

    Ausgabe des größten gemeinsamen Teilers zweier positiver ganzer Zahlen. Die ist die verbesserte Version. Bei der Ur-Version  wird davon ausgegangen, das der größte gemeinsame Teiler von m und n gleich dem größten gemeinsamen Teiles von m und m - n ist.

  2. Struktogramm

    Euklidischer Algorithmus

  3. Quellcode

    import java.io.*;
    /** Funktion:  Euklidischer Algorithmus
        Ausgabe des größten gemeinsamen Teilers zweier positiver ganzer Zahlen
        Application ohne Oberfläche, läuft in der Dos-Box: "java euklid"
        @author  DG1XPZ
       
        @version JDK131
    */

    class euklid {

      public static void main(String[ ] vArgs) {
           euklid eu = new euklid ( );         //Instanz von der Klasse "euklid" erzeugen
           System.out.println("Euklidischer Algorithmus, Ausgabe des groessten gemeinsamen Teilers"
                                      
    +" zweier positiver ganzer Zahlen.");  // Ausgabe auf Bildschirm
           System.out.println("Bitte Zahl 1 eingeben:");  // Ausgabe auf Bildschirm
           int e1 = eu.eingabe( );                  //1.Zahl von Tastatur holen
           System.out.println("Bitte Zahl 2 eingeben:");  // Ausgabe auf Bildschirm
           int e2 = eu.eingabe( );                 //2.Zahl von Tastatur holen
           System.out.println("Der groesste gemeinsame Teiler ist: "+eu.ggt(e1,e2));
      }

      
    /** Funktion: Eingabe (ganze Zahl) von Tastatur einlesen
            @exception IOException  Wenn keine Zahlen sondern Buchstaben o. Zeichen eingegeben wurden
            @return                             Die zurückgegebene Integerzahl
       */

       privat int eingabe( ) {
           int z=0;
           BufferedReader eing=new BufferedReader (new InputStreamReader(System.in));
           // Eingabepuffer erzeugt, für Eingabe über Tastatur
           try {    //Fehlerbehandlung einleiten (try=versuche)
              String eingstr=eing.readLine( );                     // Lese String von Eingabepuffer (Tastatur)
              z=Integer.parseInt(eingstr);                           // Umwandeln String in Zahl
           } catch(java.io.IOException ioe) {                      // wenn Fehler dann Meldung erzeugen
              System.err.println("Fehler! Eingabe konnte nicht interpretiert werden!");
              // Ausgabe der Fehlermeldung wenn keine Zahlen eingegeben werden
          
    }
           return z//Rückgabe der ganzen Zahl
       } //
    private int eingabe( ) 

       /** Funktion: Größten gemeinsamen Teiler zweier Zahlen ermitteln
           @param m Erste Zahl
           @param n  Zweite Zahl
           @return      Rückgabe des Größten gemeinsamen Teilers
       */
       
    public int ggt(int m, int n){
           
    int r; 
           
    do {
               if (m<n) {
                  r=m; m=n; n=r;
               }
               r = m % n;
               if (r!=0) {
                 m=n; n=r;
               }
            } while ( r!=0 );
            return n //Rückgabe des Größten gemeinsamen Teilers
        } //public int ggt(int m,int n)

    }
    //class euklid


  4. Download euklid.java

  5. Download euklid.class

 

http://www.counter-service.de http://www.counter-service.de

Home
uebermich
Programmierung
Amateurfunk
Elektronik
Download
Links
E-Mail
Gästebuch/Meckerecke
Counter-DG1XPZ