Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   JAVA: Euklidischer Algorithmus (https://www.delphipraxis.net/106664-java-euklidischer-algorithmus.html)

Störtebeker 14. Jan 2008 19:57


JAVA: Euklidischer Algorithmus
 
Hi, Delphiexperten:

ok, die folgende Frage bezieht sich auf JAVA, aber vielleicht könnt ihr mir trotzdem helfen:

Wir arbeiten in unserem 12. Klasse INFORMATIK-Kurs mit JAVA und sollen nun den ggT eines Bruches finden. Mit Hilfe einer Methode und dem "EUKLIDISCHEN ALGORITHMUS". Nur stehe ich jetzt irgendwie auf dem Schlauch und wäre jeder Hilfe dankbar.

Momentaner Quelltext:

Delphi-Quellcode:
   
//BEGIN OF - Declaration of Variables

     int a; // Numerator (Zähler)
     int b; // Denominator (Nenner)
     int c; // Rest

//END OF - Declaration of Variables
.
.
.
//BEGIN OF - Method "ggT"
   public String ggT()
   {
     c = a % b;
     a = b;
     b = c;
     return a;
   }
   //END OF - Method "ggT"
den Code habe ich aus dem WIKIPEDIA ARTIKEL: EUKLIDISCHER ALGORITHMUS

JAVA KOMMT DANN ALLERDINGS MIT:
Zitat:

mathclass:..:..: incompatible types
found: int
required: java.lang.String
return a;
Die Werte werden mit Hilfe der folgenden Methode "aufgenommen":
Delphi-Quellcode:
   //BEGIN OF - Method "Calculation"
   public String Calculation()
   {
     System.out.println("BITTE GEBEN SIE DEN ZÄHLER AN:\t");
     a = Tastatur.liesInt();
     System.out.println("\nBITTE GEBEN SIE DEN NENNER AN:\t");
     b = Tastatur.liesInt();
     return "---------------------------------------------------------";
   }
   //END OF - Method "Calculation"
Ich weiß, dass in JAVA Tastaturbefehle normalerweise anders aussehen, aber unser Lehrer hat uns extra ne "Tastaturklasse" geschrieben, und daher arbeiten wir mit "...Tastatur.lies..();"

Falls mehr "INPUT"/"INFORMATIONEN" gebraucht werden, einfach nochmal melden.

arbu man 14. Jan 2008 20:02

Re: JAVA: Euklidischer Algorithmus
 
Code:
//BEGIN OF - Method "ggT"
   public [color=#ff003f]int[/color] ggT() // Rückgabewert muss int sein da a auch int ist!
   {
     c = a % b;
     a = b;
     b = c;
     return a;
   }
   //END OF - Method "ggT"
Edit: Ach ja benutze doch bitte die [ c ] tags für den JavaCode dann lässt sich der Code besser lesen, danke.

Apollonius 14. Jan 2008 20:03

Re: JAVA: Euklidischer Algorithmus
 
Hat deine Shift-Taste zufällig einen Wackelkontakt?
Das ist doch eigentlich ziemlich deutlich. Warum soll die ggT-Methode denn einen String zurückgeben? Du willst doch einen Int als Ergebnis. Und was der Rückgabewert von Calculation soll, ist mir auch nicht ganz klar.

Störtebeker 14. Jan 2008 20:08

Re: JAVA: Euklidischer Algorithmus
 
Danke, nachdem ich aus:

Code:
//BEGIN OF - Method "ggT"
   public String ggT()
   { 
     c = a % b;
     a = b;
     b = c;
     return a;
   } 
   //END OF - Method "ggT"
Code:
//BEGIN OF - Method "ggT"
   public int ggT()
   { 
     c = a % b;
     a = b;
     b = c;
     return a;
   } 
   //END OF - Method "ggT"
gemacht habe, funzt es. :oops: DANKE FÜR DEN HINWEIS. Manchmal kann die Lösung so einfach sein.

@Apollonius: Meine Schifttaste hat keinen Wackelkontakt. Und das "RETURN" von "CALCULATION" gibt einfach eine Trennlinie zurück.

Apollonius 14. Jan 2008 20:11

Re: JAVA: Euklidischer Algorithmus
 
Mir erschiene der Rückgabetyp void für Calculation eher angebracht. Denn was will die Methode, die Calculation aufruft, schon mit dem Rückgabewert anfangen, vor allem, da er sowieso konstant ist?

DGS 14. Jan 2008 20:15

Re: JAVA: Euklidischer Algorithmus
 
Denke, es macht mehr Sinn diese Trennlinie auf die Konsole zu schreiben, als die zu übergeben.

eine "procedure" in Java sieht halt so aus:
Code:
public void Calculation()
{
   System.out.println("BITTE GEBEN SIE DEN ZÄHLER AN:\t");
   a = Tastatur.liesInt();
   System.out.println("\nBITTE GEBEN SIE DEN NENNER AN:\t");
   b = Tastatur.liesInt();
  // An diser Stelle Ergebnis ausgeben.
   System.out.println("\n---------------------------------------------------------");
   }
Brauchst auch kein return.
( bzw: return hat Funktion des exit; aus Delphi )


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz