BlackFire1984 Geschrieben 12. Dezember 2004 Teilen Geschrieben 12. Dezember 2004 public class Aufg2 { public static void main (String [] args){ int x=5; System.out.println("Berechnung = " + weroderwas (x)); } static int weroderwas (int y) { int eins, zwei; System.out.println("y =" +y); if (y==1) {System.out.println("Wende = 0"); return 0;} else if (y%2==0) { eins = 1 + weroderwas (y/2); System.out.println ("eins = " +eins); return eins; } else { zwei = 1 + weroderwas (3*y+1); System.out.println ("zwei = " +zwei); return zwei; } } Ausgabe: y = 5 y = 16 y = 8 y = 4 y = 2 y = 1 Wende = 0 eins = 1 eins = 2 eins = 3 eins = 4 zwei = 5 Berechnung: 5 Nach Wende =0; kann ich dem Programm nicht mehr folgen. Könnte mir vielleicht jemand erklären wie der Ablauf aussieht. Ich bedank mich im Voraus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordK Geschrieben 13. Dezember 2004 Teilen Geschrieben 13. Dezember 2004 Hast du mal probiert das Programm schritt für schritt mit nem Debugger zu durchlaufen? Da siehst du ja jeden einzelnen Schritt. Gruß LordK Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BenjieAul Geschrieben 13. Dezember 2004 Teilen Geschrieben 13. Dezember 2004 Von wem ist das Programm denn? Also die Variablennamen sind ja nicht gerade passend gewählt.Vll helfen dir aussagekräftigere Variablennamen P.S.: Wie kann man denn in Java alles Schritt für Schritt abspielen lassen? Kenn ich noch gar net, würde mich aber mal interresieren =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BlackFire1984 Geschrieben 13. Dezember 2004 Autor Teilen Geschrieben 13. Dezember 2004 Ich weiß zwar nicht was ein Debugger ist. ICh hab aber mittels System.out.print überprüft welchen Wert y nach return 0; hat(nämlich 2) weiß aber nicht warum. Deshalb hätte ich gerne diesen Schritt erklärt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 14. Dezember 2004 Teilen Geschrieben 14. Dezember 2004 Servus, der Quelltext ist nicht formatiert, deshalb ist es mir zu mühsam, den durchzuschauen. Ein Debugger lässt Dich an bestimmten Breakpoints im Programm anhalten und den aktuellen Zustand der Variablen auslesen. Debugger sind bei jeder vernünftigen IDE dabei und deren Bedienung wird in der Hilfe erklärt. Wenn Du den Quellcode auf das Wesentliche eindampfst und vernünftig formatierst, dann schau ich drüber. Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BenjieAul Geschrieben 14. Dezember 2004 Teilen Geschrieben 14. Dezember 2004 public class Aufg2 { public static void main (String [] args){ int x=5; System.out.println("Berechnung = " + weroderwas (x)); } static int weroderwas (int y) { int eins, zwei; System.out.println("y =" +y); if (y==1) { System.out.println("Wende = 0"); return 0; } else if (y%2==0) { eins = 1 + weroderwas (y/2); System.out.println ("eins = " +eins); return eins; } else { zwei = 1 + weroderwas (3*y+1); System.out.println ("zwei = " +zwei); return zwei; } } } Also erstmal war ein Fehler drinnen, da du unten nicht geschlossen hattest =) Habe mir einfach mal die 2 Minuten Zeit genommen und dein Quellcode formatiert, wollte mir den Quellcode mal angucken. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Geschrieben 14. Dezember 2004 Teilen Geschrieben 14. Dezember 2004 [...] Ausgabe: y = 5 Eingabewert y = 16 Eingabewert aus dem zweiten Else 5*3+1 y = 8 Eingabewert halbiert, erstes Else y = 4 Eingabewert halbiert, erstes Else y = 2 Eingabewert halbiert, erstes Else y = 1 Eingabewert halbiert, erstes Else Wende = 0 Terminierung der Rekursion, Rückgabe von 0 eins = 1 1 + Rückgabewert, erstes Else eins = 2 1 + Rückgabewert, erstes Else eins = 3 1 + Rückgabewert, erstes Else eins = 4 1 + Rückgabewert, erstes Else zwei = 5 1 + Rückgabewert, zweites Else Berechnung: 5 finaler Rückgabewert an public static void main, zweites Else Nach Wende =0; kann ich dem Programm nicht mehr folgen. Könnte mir vielleicht jemand erklären wie der Ablauf aussieht. Ich bedank mich im Voraus. Das sind mehr als zehn Zeichen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.