Rückgabewert bestimmen

programmer13

Mitglied
Hallo zusammen,

Java:
public class Aufgabe19 {

    public static double main(String[] args) {
        double j=100;
        double k=360;
        double gcd;
      
        if (k==0)
        {
            System.out.println(""+j);
        }
        else
        {
            gcd(k, j % k);
        }
} 
}

Den Code habe ich selber programmiert, er funktioniert aber nicht.

Aufgabe war so gestellt:

Code:
public static int gcd (intj, int k)
{if (k == 0) return j;
return gcd(k, j%k);}

Man soll nach der Aufgabenstellung einen Code programmieren, und den Rückgabewert bestimmen.

Kann mir jemand helfen?
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Was funktioniert nicht? Was für Fehler kommen? Was siehst du und was erwartest Du?

Mehr Informationen helfen immer, da zumindest meine Glaskugel derzeit nicht funktioniert (Und wenn herauskommt, dass ich Muggel mit meiner Glaskugel beobachte, dann bekomme ich auch Ärger vom Zaubereiministerium....)

Was mir so auffällt: Die Funktion gcd nimmt int Parameter aber Du hast Deine Variablen als double definiert. Und wieso gibt main ein double zurück? Die Definition der main Methode ist fix und wird nicht angepasst.

Konrad
 

programmer13

Mitglied
Hallo kneitzel,

Aufgabe war so gestellt:

Welchen Rückgabewert liefert die folgende Methode bei einem Aufruf gcd(100,360)?
a) 10
b) 20
c) 40
d) 60
public static int gcd (intj, int k)
{if (k == 0) return j;
return gcd(k, j%k);}

Nun möchte ich die Aufgabe programmieren, um die Lösung zu ermitteln:
Java:
public class Aufgabe19

{
  
    public static void gcd (int j, int k)
{
  
        j=100;
        k=360;
              
        if (k==0)
        {
            System.out.println(""+j);
        }

        else
        {
            gcd(k, j % k);
        }

}

  
}

Problem ist jedoch, dass die main-Methode fehlt d.h. ich das Programm nicht ausführen kann. Leider verstehe ich nicht wo/wie man diese einfügt.
 
K

kneitzel

Gast
Also du willst wissen, was die vorgegebene Funktion gcd bei einem bestimmten Aufruf zurück gibt. Dann darfst Du die vorgegebene Funktion gcd erst einmal nicht verändern. (In Deinem Fall auch fatal, da es ja ein rekursiver Aufruf ist und Du die Werte immer auf die Ursprungswerte setzt!)

Und wenn Du wissen willst, das gcd zurück gibt für einen bestimmten Aufruf, dann ruf die Funktion doch auf!

Und wichtig: Du hast die Funktion auch anderweitig verändert, so dass kein Wert mehr zurück gegeben wird. Aber das ist nicht zielführend. Das sind Veränderungen, die alle die Möglichkeit mit sich bringen, dass Fehler gemacht werden. Also einfach die vorgegebene Funktion unverändert lassen und die Funktion aufrufen. Ergebnis kannst Du direkt ausgeben oder erst in einer Variablen speichern und diese dann ausgeben.
 

JStein52

Top Contributor
So:

Code:
public class Aufgabe {

   public static int gcd (int j, int k) {
      if (k == 0) return j;
      return gcd(k, j%k);
   }

   public static void main(String[] args) {
        System.out.println("Wert: "+gcd(100,360);
   }
}
 
Zuletzt bearbeitet von einem Moderator:

programmer13

Mitglied
Hallo zusammen,

der Code ist mir jetzt klar, danke dafür.
Ich verstehe jedoch nicht, was der Code macht.
Ich verstehe nur, dass er wenn k=0 ist, j ausgibt und ansonsten j modulo k rechnet (100 mod 360=100).
Ergebnis soll 60 sein.
Wie funktioniert das?
 

Joose

Top Contributor
Ich verstehe nur, dass er wenn k=0 ist, j ausgibt

Achtung bei der Wortwahl: j wird nicht ausgegeben sondern nur zurürckgegeben!

und ansonsten j modulo k rechnet (100 mod 360=100).
Ergebnis soll 60 sein.
Wie funktioniert das?

Genau wenn k != 0 ist wird einerseits "j modulo k" gerechnet das Ergebnis dieser Berechnung und der Wert von "k" werden wieder als Parameter an einen weiteren Aufruf der Methode "gcd" übergeben.
Sprich diese Methode ruft sich in diesem Fall selber nochmal auf (Rekursion) und muss natürlich die entsprechenden Parameter übergeben.
Sie ruft sich solange selber auf bis irgendwann mal "k == 0" zutrifft und statt einem weiteren rekursiven Aufruf mittels "return" etwas zurückgegeben wird.
 
K

kneitzel

Gast
Also was da berechnet wird, hängt mit der Mathematik zusammen. Man kann diverse Dinge einfach einmal ausrechnen und dann schauen, was dabei rauskommt um dann vielleicht zu sehen, was das denn sein könnte.

Rechne doch einfach einmal gcd(360, 100) aus. Was kommt dabei raus? Was kommt bei gcd (10,8) raus?

Und dann kommt man evtl. auch dahinter, gcd sein könnte (Im deutschen kennt man das eigentlich unter einem anderen Namen).

Konrad
 

programmer13

Mitglied
Bei folgendem Code sollte man auch noch den Rückgabewert bestimmen:

Java:
public static String aufgabe (int zahl)
String erg = ""
while (zahl !=0)  {
  erg = ((zahl%2)) + erg;
  zahl =  zahl / 2;
}
  return erg;
}

Was wird zurückgegeben, wenn die Methode mit aufgabe(11) aufgerufen wird?

Ich habe dann gerechnet:

11 mod 2 = 1
1 / 2 = 0.5

0.5 mod 2 = 0.5
0.5 / 2 = 0.25

Bloß das ist ja unendlich...da kommt ja niemals 0 raus..... da geht die while Schleife ja immer weiter...
 

Joose

Top Contributor
Achtung "zahl" ist der primitive Datentyp int! Da gibt es keine Kommazahlen bei einer Rechnung.

Außerdem rechnest du mit dem falschen Wert weiter ;), Zahl wird bei der Modulo Rechnung kein Wert zugewiesen.
Das Ergebnis vom Modulo wird zum String "erg" hinzugefügt.
Zahl wird dann halbiert -> 11/2 = 5,5 da es sich aber um ein int handelt wird alles hinter dem Komma einfach weggelassen
 

programmer13

Mitglied
Hallo Jose,

entschuldige bitte die späte Antwort.
Folgendes habe ich jetzt gerechnet:

11 mod 2 = 1 , d.h. erg=1
11/2 = 5.5, d.h. zahl = 5 (weil int)

5 mod 2 = 1 (erg)
5/2 = 2.5 = 2 (weil int)

2.5 mod 2 = 0.5 (erg)
2.5/2 = 1 (weil int)

1.25 mod 2 = 1.25
1.25/2 = 0 (weil int)

also: Ergebnis ist 1.25

Stimmt das?
 

Bitfehler

Bekanntes Mitglied
2.5 mod 2 = 0.5 (erg)

Kann es sein, dass deine 2.5 eine 2 sein muss? Wenn ja, sind die nachfolgenden Schritte auch falsch.
Es wird ja zahl mod 2 gerechnet, zahl ist ein Integer und somit nicht 2.5.

EDIT:
5 mod 2 = 1 (erg)
erg müsste 11 sein, daher wahrscheinlich später auch wieder Folgefehler. Warum steht schon weiter oben. (Das Ergebnis von 5 mod 2 ist zwar 1, du sollst aber noch den Wert von erg an den Rest anhängen.)
 

programmer13

Mitglied
11 mod 2 = 1, d.h. erg = 1
11/2 = 5.5, d.h. zahl = 5

5 mod 2 = 1, d.h. erg = 1
5/2 = 2, d.h. zahl = 2

2 mod 2 = 0, d.h. erg = 0
2/2 = 1, d.h. zahl = 1

1 mod 2 = 1, d.h. erg = 1
1/2 = 0, d.h. zahl= 0

erg = 1


Stimmt das?
 

Bitfehler

Bekanntes Mitglied
Langsam kommst du in die richtige Richtung. Die Werte für zahl sind schon mal richtig, die für erg noch nicht (siehe Posts weiter oben).

erg: 1
zahl: 5
erg: 11
zahl: 2
erg: 011
zahl: 1
erg: 1011
zahl: 0
Rückgabe: 1011
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
B Rückgabewert boolean Java Basics - Anfänger-Themen 8
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
L Methoden Rückgabewert Verbergen / nicht mit ausgeben Java Basics - Anfänger-Themen 4
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
F Pascalsches Dreieck mit Rückgabewert Java Basics - Anfänger-Themen 2
D Dezimal zu Dual mit Rückgabewert Java Basics - Anfänger-Themen 39
Curtis_MC Methoden Rückgabewert von BiPredicate Java Basics - Anfänger-Themen 6
B Array als Rückgabewert in der Methode Java Basics - Anfänger-Themen 1
T Rückgabewert Problem Java Basics - Anfänger-Themen 2
A Methoden Rückgabewert Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
H Variablen Void und der Rückgabewert Java Basics - Anfänger-Themen 6
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
D for-Schleife Rückgabewert Java Basics - Anfänger-Themen 6
M Rückgabewert bei Methoden Java Basics - Anfänger-Themen 6
C Rückgabewert von Kontruktoren Java Basics - Anfänger-Themen 15
S Methoden Bei Liste als Rückgabewert: IndexOutOfBoundsException Java Basics - Anfänger-Themen 1
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
O Was verursacht den Rückgabewert false bei der Methode ready() eines BufferedReaders Java Basics - Anfänger-Themen 9
K Methode ohne Rückgabewert in boolean Methode ändern Java Basics - Anfänger-Themen 6
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
S Rückgabewert null in Methode mit Thread Java Basics - Anfänger-Themen 2
M Anstatt 1 int Rückgabewert, mehrere Rückgaben mit Arraylist Java Basics - Anfänger-Themen 8
N Klassen constructor Rückgabewert Java Basics - Anfänger-Themen 10
C Methoden Rückgabewert von statischer Methode ignorieren Java Basics - Anfänger-Themen 8
MiMa Methode mit Rückgabewert Java Basics - Anfänger-Themen 2
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
T Variablen Rückgabewert aus einer Schleifen-Methode Java Basics - Anfänger-Themen 8
D Methode mit Rückgabewert Java Basics - Anfänger-Themen 5
K Rückgabewert einer Klassenmethode Java Basics - Anfänger-Themen 7
J Methoden mit und ohne Rückgabewert Java Basics - Anfänger-Themen 22
D Erste Schritte Als Rückgabewert Klasse Java Basics - Anfänger-Themen 5
D Rückgabewert Pixelgrabber Java Basics - Anfänger-Themen 3
S ArrayList und Rückgabewert Java Basics - Anfänger-Themen 2
T Methode - Rückgabewert Schreibweise Java Basics - Anfänger-Themen 6
S Interface Rückgabewert Java Basics - Anfänger-Themen 3
F if Anweisung mit Rückgabewert? Java Basics - Anfänger-Themen 4
I Rückgabewert von JSlider Java Basics - Anfänger-Themen 15
B Methoden, Rückgabewert und Verknüpfungen Java Basics - Anfänger-Themen 15
V OOP Klassen Methoden Rückgabewert Java Basics - Anfänger-Themen 15
C Datentypen Rückgabewert von "new FileInputStream" Java Basics - Anfänger-Themen 4
S Datentypen String mit fester Länge (Rückgabewert einer Methode) Java Basics - Anfänger-Themen 2
O Rückgabewert mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 10
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
T Array als Rückgabewert einer Methode Java Basics - Anfänger-Themen 3
A Rückgabewert ändert sich? Java Basics - Anfänger-Themen 9
C Thread mit Rückgabewert? Java Basics - Anfänger-Themen 4
S Rückgabewert einer Instanzvariable Java Basics - Anfänger-Themen 2
K rückgabewert combobox Java Basics - Anfänger-Themen 15
M Methoden mit Rückgabewert Java Basics - Anfänger-Themen 4
B Vector<Point> als Rückgabewert Java Basics - Anfänger-Themen 23
C Null als Rückgabewert Java Basics - Anfänger-Themen 7
O String[] Array als Rückgabewert Java Basics - Anfänger-Themen 7
G setValueAt Rückgabewert verarbeiten? Java Basics - Anfänger-Themen 12
P Methode mit 2 unterschiedlichem Rückgabewert Java Basics - Anfänger-Themen 10
L Prozess rückgabewert? Java Basics - Anfänger-Themen 5
I "Rückgabewert" von EditorFenster Java Basics - Anfänger-Themen 6
A ActionPerformed Methode ohne Rückgabewert Java Basics - Anfänger-Themen 12
G Rückgabewert bei JInternalFrame ? Java Basics - Anfänger-Themen 2
M Rückgabewert Java Basics - Anfänger-Themen 4
L Rückgabewert Java Basics - Anfänger-Themen 7
K Frage zu Rückgabewert List und ArrayList Java Basics - Anfänger-Themen 6
D Methode aufrufen funktioniert nicht ganz - Rückgabewert Bool Java Basics - Anfänger-Themen 12
M Rückgabewert einer Methode Java Basics - Anfänger-Themen 6
P Array als Rückgabewert Java Basics - Anfänger-Themen 4
halla Array an Methode übergeben / Array als Rückgabewert Java Basics - Anfänger-Themen 2
L Rückgabewert in Konstruktor? Java Basics - Anfänger-Themen 4
R Problem mit Rückgabewert Java Basics - Anfänger-Themen 5
M Null-Rückgabewert von Methoden = sauberes programmieren? Java Basics - Anfänger-Themen 3
D Rückgabewert einer Methode Java Basics - Anfänger-Themen 25
M JFileChooser Rückgabewert Java Basics - Anfänger-Themen 2
Niki_Tesla Rückgabewert Java Basics - Anfänger-Themen 2
A Hashtable als Rückgabewert Java Basics - Anfänger-Themen 3
A Methode mit Rückgabewert Java Basics - Anfänger-Themen 3
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
rosima26 Java SubSum bestimmen Java Basics - Anfänger-Themen 76
M Ersten Index von Array bestimmen Java Basics - Anfänger-Themen 14
C Kollision zweier Rechtecke, Schnittpunkte bestimmen Java Basics - Anfänger-Themen 25
C Boolesche Formel, Belegungen bestimmen Java Basics - Anfänger-Themen 8
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
L Partitionierungsgruppen bestimmen Java Basics - Anfänger-Themen 22
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
N Bereich Zufallszahl bestimmen (50 und 100 / 80 und 90) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben