Kann Quellcode von "Hanoi" nicht verstehen. Bitte

Status
Nicht offen für weitere Antworten.

botox01

Neues Mitglied
Hallo,
wie so häufig, wenn Anfänger (wie ich) nicht weiter wissen, bitten sie um Hilfe. Und ich benötige Hilfe… Habe auch schon die Suchfunktion dieses Board benutzt, leider aber ohne Erfolg km
Ich kann den unten angegebenen Quellcode nicht lesen bzw. mir nicht selbst erklären.

Es wäre sehr nett, wenn mir jemand
a) den Quellcode erklären könnte, der unten aufgeführt ist (er gibt die Reihenfolge der Züge zurück (glaub ich! )
b) einen Tipp zur Umsetzung in Borland jBuilder geben könnte (was ist nötig, um den Quellcode lauffähig zu bekommen?


Nebenbei sei erwähnt, dass mir die mathematische Seite von Hanoi bekannt ist, soll heißen, dass ich mich eingehend damit befasst habe (einschließlich Herleitung durch vollständige Induk.tion, rekursive Formeln f(n+1)=f(n)+1+f(n) und f(n)=(2^n)-1 etc.)
Also ganz Ahnungslos bin ich bei dem Problem nicht, aber das reicht leider nicht…

Z.B. bei ein Türmchen mit 4 Scheiben, der von Feld A nach Feld B bewegt werden soll, müßte man doch durch irgend ein Aufruf, die einzelnen Spiel-Züge zurückgegeben bekommen. Aber durch welchen? Und was kriege ich zurück?

Hab aber leider nur Grundkenntnisse in Java für jBuilder.

Muss ich für den Quellcode eine eigene Klasse anlegen oder bezieht sich es auf String?
Wie muss die Anwendung aussehen? Hab ich für soetwas noch nicht gemacht…

Es wäre wirklich voll nett, wenn Sie sich helfender weise meinem Anfägerproblem annehmen…


Das noch zur Erläuterung:
n = Anzahl der Scheiben des Turms
ap = Anfangsposition,
zp = Zielposition und
zw = Zwischenplatz.

Hier der Quellcode:
Code:
public String hanoi(int n,String ap,String zp, String zw) {
if (n>1) {
this.hanoi(n-1,ap,zw,zp);
zuege=zuege+"Ziehe Scheibe "+n+" von "+ap+" nach "+zp+"\n";
this.hanoi(n-1,zw,zp,ap);
}
else{
zuege=zuege+"Ziehe Scheibe "+n+" von "+ap+" nach "+zp+"\n";
}
return zuege;
}
Ich bin für jede Hilfe dankbar!!!

Mit freundlichen Grüßen
botox
 
S

SlaterB

Gast
> Z.B. bei ein Türmchen mit 4 Scheiben, der von Feld A nach Feld B bewegt werden soll, müßte man doch durch irgend ein Aufruf, die einzelnen Spiel-Züge zurückgegeben bekommen. Aber durch welchen?

durch Aufruf von public String hanoi()

> Und was kriege ich zurück?

Meldungen wie "Ziehe Scheibe "+n+" von "+ap+" nach "+zp+"\n";


> Ich kann den unten angegebenen Quellcode nicht lesen bzw. mir nicht selbst erklären.

stelle noch mehr Fragen wie die obigen zwei und du erhälst noch mehr vollständige Antworten

----------

> Muss ich für den Quellcode eine eigene Klasse anlegen oder bezieht sich es auf String?

jeder Quellcode gehört in irgendeine Klasse,
was hat das mit Strings zu tun?

> Wie muss die Anwendung aussehen?

wie jedes beliebige Java-Programm,
wenn du gar keins kennst, dann wäre es effektiver, in einem Lehrbuch einige kennenzulernen,
wieso jemand anders fragen?
bei konkreten Problemen gerne, aber noch ohne Erfahrung.. ???:L :bae:
 

botox01

Neues Mitglied
Erstmal besten Dank für die schnellen Antworten...



Verzeihung für die unpräzisen Fragen. Aber vielleicht darf ich doch noch ein paar davon stellen...

Zu der Anwendung des Quellcode:
Nochmal zur Anwendung für den Quellcode (wenn die schon mal steht, dann kann ich vielleicht durch rumprobieren ein bissel was selber rausfinden)
Wenn ich eine Anwendung für den Quellcode schreibe, würde ich normalerweise so vorgehen. Erstmal mit jBuilder ein Eingabefed(jEingabe1), ein Button(jKnopf1) und ein Ausgabefeld(jAusgabe1) erstellen.
Dann beim Button den Aufruf eingeben (oder heißt es Methode?).
Hier als Beispiel mal mein Ansatz für den Button der Anwendung für den Quellcode unten:
Code:
long zahl1, ergebnis;
ergebnis=0;
zahl1=Long.parseLong(jEingabe1.getText());
public String hanoi=new public String hanoi();
ergebnis=zuege;
jAusgabe1.setText(""+ergebnis);
}
}
Aber das klappt nicht... Ist ja auch falsch, ok, aber ich hatte bei meinem Dozenten nur ein ganz einfaches iteratives (ergebnis=zahl1*zahl2) und ein rekursives (Ulam Kollatz Funktion) Beispiel für jBuilder 2006.
Der Mensch verlangt ein bisschen viel für meinen Geschmack und ein Lehrbuch hilft mir da nur bedingt... nur leider saß ich links außen und nun muss ich das Ding nächstes mal vorstellen (also setzt euch nie in vorderste Rheihe außen hin!:autsch: )

Wo liegt mein Fehler in der Anwendung? Hat da jemand einen Ansatz?
Jedenfalls müßte ich in jAusgabe1 doch Zeichenketten bzw. Texte zurückbekommen, oder?

Ich habe mir auch wikipedia/türme von Hanoi angeschaut aber der rekursive Ansatz ist auch nicht gerade übersichtlich und zudem auch noch mit anderen Befehlssätzen...

Zum Quellcode:
Nach dem hier augeführten Quellcode kann ich Zeile 2,3,7,8,10 und 11 gerade so noch verstehen...
Code:
public String hanoi(int n,String ap,String zp, String zw) {
if (n>1) {
this.hanoi(n-1,ap,zw,zp);
zuege=zuege+"Ziehe Scheibe "+n+" von "+ap+" nach "+zp+"\n";
this.hanoi(n-1,zw,zp,ap);
}
else{
zuege=zuege+"Ziehe Scheibe "+n+" von "+ap+" nach "+zp+"\n";
}
return zuege;
}

Also Zeile 2 besagt: öffentliche Klasse (String; hier weil hinterher Zeichenketten als Ausgabe1) mit dem Namen hanoi.
Dann folgt eine Bennennung der Variablen (int n,String ap,String zp, String zw) wobei n Anzahl der Scheiben in ganzzahligen Werten und die anderen ap,zp und zw in Zeichenketten-Werten deklariert werden.
Zeile 3: wenn Scheibenanzahl n größer 1 ist dann führe Zeile 3,4 und 5 aus
Zeile 4:unklar!
Zeile 5:unklar!
Zeile 6:unklar!
Zeile 7: verstanden
Zeile 8: wenn Zeile 3 festellt das n=1, dann führe Zeile 9 aus
Zeile 9:unklar!
Zeile 10: verstanden
Zeile 11:gib die Züge als Zeichenkette durch Aufruf zuege an die Anwendung zurück (Ausgabe1)

Ist die Beschreibung der Zeilen korrekt?
Kann jemand bei den unklaren Zeilen ein bisschen was zu sagen?
Frage zu Zeile 4: Was bedeutet "this"? Ist "this.hanoi" nur ein Rückbezug auf Initialisierung mit Variablen in Zeile 2 ?
Was bedeutet in diesem Fall (n-1,ap,zw,zp)?
Frage zu Zeile 5: Kann man das sa interpretieren die "zuege"(die in Zeile 11 ausgegeben werden) sind gleich den vorangegangennen "zuege" + der Aktuelle, der gerade gezogen wird (siehe Bedingung in Zeile 3) ??? Was bedeutet das "+ +" um die Variablen? was bedeutet "\n"?
Frage zu Zeile 6: Was bedeutet in diesem Fall (n-1,zw,zp,ap)? (Siehe Frage zu Zeile 4)
Frage zu Zeile 9: ??? Siehe Frage zu Zeile 5

Eigentlich möchte ich niemanden mit unnötigen Fragen belästigen, aber in diesem Fall weiß ich leider nicht weiter und muss jemanden fragen, der sich damit auskennt...

Vielen Dank.

Mit freundlichen Grüßen
Botox01
 
S

SlaterB

Gast
zu JBuilder kann ich wenig sagen wenn du da seltsame GUIs zusammenbaust,
schaue dir lieber normal Programme a la Hello World in ganz normalen Lehrbüchern an, aber alleine da durchzukommen ist auch nicht ohne, das sehe ich ein

-----------

> Zeile 2 besagt: öffentliche Klasse (String; hier weil hinterher Zeichenketten als Ausgabe1) mit dem Namen hanoi

keine Klasse, sondern eine Operation mit Rückgabewert String,
über die Klasse ist nichts gesagt, der Code ist unvollständig

> zuege=zuege+"Ziehe Scheibe "+n+" von "+ap+" nach "+zp+"\n";


zuege ist ein String, an welchem neue Textbausteine angefügt werden,
\n ist das Zeilenumbruch-Zeichen

> this.hanoi(n-1,ap,zw,zp);

this ist das eigene Objekt,
this.hanoi() ist der rekursive Aufruf der eigenen Operation hanoi()
mit geänderten Parametern

-------

und nochmal kurz: wenn du keine eigenen Hello-World-Programme schreiben kannst,
dann ist so eine Rekursion etwas sehr sehr schweres,
wundere dich nicht, wenn du das nicht verstehst,
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
jhCDtGVjcZGcfzug Was genau ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 5
jhCDtGVjcZGcfzug Was ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 3
J Wie bestehenden Quellcode in IDE richtig übernehmen Java Basics - Anfänger-Themen 27
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
P Quellcode LinkedList Java Basics - Anfänger-Themen 2
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
F Quellcode wird nicht in cmd angezeigt Java Basics - Anfänger-Themen 8
N Erste Schritte Quellcode fehlerhaft Java Basics - Anfänger-Themen 2
J Methoden Quellcode DP Fibonaaci erklärt Java Basics - Anfänger-Themen 5
L Fehler in Quellcode?! Java Basics - Anfänger-Themen 3
D Generics ArrayList: Bug im Quellcode Java Basics - Anfänger-Themen 14
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
Hacer Quellcode lesen Java Basics - Anfänger-Themen 13
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
G Quellcode verstehen Java Basics - Anfänger-Themen 9
F Quellcode optimieren... Java Basics - Anfänger-Themen 4
M Verstehe das Programm(Quellcode) nicht!! Java Basics - Anfänger-Themen 12
U Java Quellcode Schaltjahr Java Basics - Anfänger-Themen 13
D Quellcode verstehen Java Basics - Anfänger-Themen 4
G Quellcode "splitten" Java Basics - Anfänger-Themen 6
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
J Quellcode von einem Link kriegen? Java Basics - Anfänger-Themen 3
W Datentypen String in Quellcode umwandeln Java Basics - Anfänger-Themen 25
O Quellcode nach bestimmter Ausgabe durchsuchen Java Basics - Anfänger-Themen 14
J Java-Quellcode Java Basics - Anfänger-Themen 13
J Tabelle aus Website einlesen [nicht im Quellcode] Java Basics - Anfänger-Themen 6
T Quellcode zur .jar oder .exe Java Basics - Anfänger-Themen 7
D Verbesserungsvorschläge zum Quellcode Java Basics - Anfänger-Themen 15
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
M Quellcode kann nicht kompiliert werden Java Basics - Anfänger-Themen 6
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
T Quellcode zu Jar? Java Basics - Anfänger-Themen 14
S Erste Schritte Fakultät Quellcode Java Basics - Anfänger-Themen 12
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
N Feste Hardcodierte Pfade im Quellcode Java Basics - Anfänger-Themen 6
S Allgemein: Quellcode einrücken Java Basics - Anfänger-Themen 8
W Kurzer Quellcode klein aber oho! Java Basics - Anfänger-Themen 7
H frage zu meinem quellcode Java Basics - Anfänger-Themen 10
M String in Quellcode umwandeln Java Basics - Anfänger-Themen 9
S Textfragmente aus Quellcode lesen und abspeichern Java Basics - Anfänger-Themen 2
U Netzwerk Chatprogramm Quellcode funktioniert nicht Java Basics - Anfänger-Themen 6
A Quellcode aus diesem Forum für komerzielle Zwecke/Bachelor Thesis? Java Basics - Anfänger-Themen 4
F Datei Quellcode Java Basics - Anfänger-Themen 8
W Hilfe bei Interpretation von Quellcode Java Basics - Anfänger-Themen 8
X Webseite auslesen ohne Quellcode zu splitten Java Basics - Anfänger-Themen 3
A log4j - wie kann ich im Quellcode initialisieren statt in der properties-Datei? Java Basics - Anfänger-Themen 2
N Quellcode absichern? Java Basics - Anfänger-Themen 21
M mit java quellcode im browser öffnen Java Basics - Anfänger-Themen 1
hdi Programmier-Stil : Speicher vs. Quellcode Java Basics - Anfänger-Themen 67
M Quellcode verbessern Java Basics - Anfänger-Themen 6
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
I Kann nicht compilieren warum? Bei großen Quellcode. Java Basics - Anfänger-Themen 8
A Änderung im Quellcode > javac > keine Änderung in Kons Java Basics - Anfänger-Themen 6
C Quellcode richtig bisher? wie gehts weiter? Java Basics - Anfänger-Themen 13
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
D quellcode in webseite einbinden Java Basics - Anfänger-Themen 7
D Fragen zu Quellcode QuickSorter Java Basics - Anfänger-Themen 13
F Quellcode & Ausgabe Java Basics - Anfänger-Themen 6
M Java Quellcode in eine exe datei umwandeln Java Basics - Anfänger-Themen 4
G Quellcode kommentieren Java Basics - Anfänger-Themen 6
S html quellcode runterladen Java Basics - Anfänger-Themen 2
D Quellcode richtig lesen lernen Java Basics - Anfänger-Themen 8
S Von einer jar.Datei den Quellcode. Java Basics - Anfänger-Themen 1
A Jar Datei im Quellcode einbinden Java Basics - Anfänger-Themen 3
G Problem mit Quellcode! Java Basics - Anfänger-Themen 15
D Import von Quellcode Java Basics - Anfänger-Themen 2
H Wo in GUI-Klasse bringe ich Quellcode unter? Java Basics - Anfänger-Themen 8
M Verstehe den Quellcode nicht ganz Java Basics - Anfänger-Themen 3
O mathematische Formel in quellcode Java Basics - Anfänger-Themen 5
M Quellcode einschränken?! Java Basics - Anfänger-Themen 6
L Fehler im simplen Quellcode! Java Basics - Anfänger-Themen 2
wuerg Türme von Hanoi Iterativ Java Basics - Anfänger-Themen 8
S Türme von Hanoi Java Basics - Anfänger-Themen 36
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
P Hanoi Java Basics - Anfänger-Themen 1
S Rekursion Rückgabe - Türme von Hanoi Java Basics - Anfänger-Themen 16
K Türme von Hanoi - Rekursiv. Java Basics - Anfänger-Themen 1
C Türme von Hanoi - Anzhal der Züge Java Basics - Anfänger-Themen 1
D Türme von Hanoi in "Java ist auch eine Insel" Java Basics - Anfänger-Themen 4
R Hanoi rekursiv lösen Problem Java Basics - Anfänger-Themen 1
D Türme von hanoi Java Basics - Anfänger-Themen 7
B Türme von Hanoi ausgabe Java Basics - Anfänger-Themen 2
shiroX OOP Türme von Hanoi - einfache grafische Ausgabe Java Basics - Anfänger-Themen 2
T Türme von Hanoi Java Basics - Anfänger-Themen 9
E Hanoi-Varianten rekursiv Java Basics - Anfänger-Themen 2
D > 3 Türme von Hanoi Java Basics - Anfänger-Themen 11
P Hanoi rekursiv zu iterativ umbauen Java Basics - Anfänger-Themen 20
J Erste Schritte türme von hanoi verständnisprobleme Java Basics - Anfänger-Themen 6
F Methoden Hanoi - Anzahl der Bewegungen Java Basics - Anfänger-Themen 8
B Türme von Hanoi - Iterator Java Basics - Anfänger-Themen 50
R Türme von Hanoi mit beliebiger Startposition Java Basics - Anfänger-Themen 5
kulturfenster Probleme mit Hanoi Java Basics - Anfänger-Themen 3
G Verständnisproblem Türme von Hanoi Java Basics - Anfänger-Themen 4
kulturfenster Hanoi Java Basics - Anfänger-Themen 28
X Türme von Hanoi - Iterativ Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben