Methoden Rekursive Methoden

D

Dave_ue

Mitglied
Hallo , beim lernen für meine morgige Klausur ist mir aufgefallen das ich nicht in der Lage bin Rekursive Methoden zu schreiben wohingegen Rekursive Funktionen wie Fakultät , Fibonacci , oder gGT kein problem sind . Kann mir evtl jemand erklären wie man das macht am besten auch mit Vorgehensweise. Wäre super ! Habe schon gegooglet aber nichts gefunden das mein Problem löst. In jeder Erklärung wird nur beschrieben was eine Rekursive Methode ist und wie sie beendet wird Dinge die ich weiß aber leider weiß ich nicht wie das mit der Übergabe funktioniert etc.


Danke schon mal im Vorraus
 
Timothy Truckle

Timothy Truckle

Top Contributor
Hallo , beim lernen für meine morgige Klausur ist mir aufgefallen das ich nicht in der Lage bin Rekursive Methoden zu schreiben wohingegen Rekursive Funktionen wie Fakultät , Fibonacci , oder gGT kein problem sind .
Wenn Du nicht weist, das Java rein sprachtechnisch keinen Unterschied zwischen Methoden und Funktionen macht (genauer, dass es letztere im Java-Sprachgebrauch nicht gibt) hast Du wohl ein größeres Problem als Du glaubst... :D

bye
TT
 
S

Spacerat

Gast
Hauptsache du kennst den Unterschied zwischen einer Methode und einer Funktion. Da gehen die Meinungen auch unheimlich weit auseinander. Für die einen ist alles (inkl. Prozeduren) ein und das selbe, für andere haben Funktionen im Gegensatz zu Methoden keine Klasse (deswegen... siehe Timothy Tuckles Aussage bezgl. Funktionen in Java).
Im zweifelsfalle brauchen rekursive Methoden nicht mal Parameter, weil sie schlicht "<parent>.rekursiv()" aufrufen, z.B. um den Root-Knoten einer Baumstruktur zu finden.
Java:
public Node getRootNode() {
  if(parent != null) {
    return parent.getRootNode();
  }
  return this;
}
[EDIT]Evtl. meinen die in deinem Buch mit Funktionen, statische Methoden. Das wird allzugerne verwechselt.
Ach ja... <parent> ist natürlich ein Member der Instanz. Funktionen können logischerweise nicht auf irgendwelche Member zugreifen, das dürfen nur Objekte, die Klasse haben. ;)[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
D

Dave_ue

Mitglied
Wenn Du nicht weist, das Java rein sprachtechnisch keinen Unterschied zwischen Methoden und Funktionen macht (genauer, dass es letztere im Java-Sprachgebrauch nicht gibt) hast Du wohl ein größeres Problem als Du glaubst... :D

bye
TT

Danke sehr hilfreich in unserem Buch steht einmal Rekursive Funktionen und einmal Rekursive Methoden einer Liste. Aber freut mich das du deinen Spaß auf Kosten meines Unwissens haben kannst.
 
D

Daassan

Mitglied
wichtig sind das Rekusive funktionen primitive werte haben.
dh sie es gibt werte die als ausgang genutzt werden bzw als abbruch dienen

bei fib wären das die beiden einsen am anfang (blabla oder halt 0/1 ^^)
bzw ausgangspunkte wie der rootnode bei einem baum
das ende einer liste

das wird meistens anfangsgeprüft und erst danach wird ein weiterer rek-aufruf gemacht

zb das if bei der lieben katze :D

naja also das wichtigste ist halt ein endpunkt wo ALLE eingabewerte der methode/fkt terminieren können

[OT]Katze es gibt funktionen ohne klasse? wo wie wann warum?? in c pascal vba ja ok aber java?[/OT]
 
S

SlaterB

Gast
Danke sehr hilfreich in unserem Buch steht einmal Rekursive Funktionen und einmal Rekursive Methoden einer Liste.

mit solchen Erklärungen diskreditierst du dich nur selber,

etwas nicht zu wissen oder ein Buch mit schlechten Inhalt zu haben ist eine Sache, nicht schlimm,
aber ab da muss das Denken einsetzen,
was verstehst du überhaupt unter einer Methode vs Funktion, poste bitte Beispielcode,
wenn du das in Code gar nicht ausdrücken kannst ist es umso unverständlicher, davon rekursive Varianten zu verfolgen

im Moment ist reichlich unklar, baue bitte erstmal eine Grundlage von allem was du meinst,
ok, Rekursion dürfte klar sein, aber spätestens nun kannst du Methode/ Funktion nicht mehr einfach so als Begriffe verwenden unter der Annahme, jeder wüßte was du meinst,
Code-Beispiele helfen immer
 
D

Dave_ue

Mitglied
Java:
public class Fakultaet
{
    public long fak ( long n ) 
    { if(n==1 || n==0) { 
        return 1 ; 
    }
    else 
    { return n*fak(n-1) ; 
    }
}

also sowas ist in meinem Buch mit Funktionen betitelt , das bekomme ich ohne Weiteres hin

allerdings habe ich ein Problem damit Bspw zu einer "Korbkette" rekursive Methoden zu implementieren ....
 
Timothy Truckle

Timothy Truckle

Top Contributor
Danke sehr hilfreich in unserem Buch steht einmal Rekursive Funktionen und einmal Rekursive Methoden einer Liste. Aber freut mich das du deinen Spaß auf Kosten meines Unwissens haben kannst.
Ich hoffe, Du hast die Antwort trotzdem zwischen den Zeilen rauslesen können:
Wenn Du recursive Funktionen in Java kannst, kannst Du auch rekursive Methoden, es ist (in Java) schlicht das selbe.

Es gibt aber Programiersprachen, die sogar syntaktisch zwischen Funktionen (mit Rückgabewert) und Prozeduren (ohne Rückgabewert) unterscheiden. Der Begriff der Methode gehört in die OO-Welt und wird für Funktionen und Prozeduren gleichermaßen verwendet.

BTW: welches Buch ist das denn?

bye
TT
 
S

Spacerat

Gast
[OT]Katze es gibt funktionen ohne klasse? wo wie wann warum?? in c pascal vba ja ok aber java?[/OT]
Katze? Wieso Katze? Natürlich... Das ist der Unterschied zwischen Methoden und Funktionen... Funktionen gehören keiner Klasse an. Das ist der Grund, warum es in Java keine Funktionen geben kann - Prozeduren deswegen natürlich auch nicht. Selbst statische Methoden werden in einer Klasse definiert (gehören also auch in die "gehobene" ;)). Funktionen sind so etwas wie z.B. "strstr(blablasülz);" (obwohl, weis gar nicht mehr, ob das einen Rückgabewert hatte oder nicht, sorry) in PHP.
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
also sowas ist in meinem Buch mit Funktionen betitelt , das bekomme ich ohne Weiteres hin

allerdings habe ich ein Problem damit Bspw zu einer "Korbkette" rekursive Methoden zu implementieren ....

du verzichtest weiterhin auf ein Beispiel für eine Methode oder irgendeine Definition, was die Methode anderes wäre als eine Funktion

kannst du nicht ' zu einer "Korbkette" rekursive Funktion implementieren', einfach behaupten es wäre eine Methode und fertig?
oder WO GENAU hakt es, geht es um Rückgabewert ja/ nein, um Parameter ja/ nein, ..?

allgemein kann man Rückgabewerte immer verhindern, indem man einen zusätzlichen Parameter herumschleppt, der das Ergebnis enthält,
das ist bei einer normalen Methode so, und bei einer rekursiven nicht anders,

bzw. eine Methode braucht ja sicher gar nicht erst eine Rückgabe, einfach mehrfach aufrufen wie eine rekursive Funktion und fertig?
 
D

Dave_ue

Mitglied
Ich hoffe, Du hast die Antwort trotzdem zwischen den Zeilen rauslesen können:
Wenn Du recursive Funktionen in Java kannst, kannst Du auch rekursive Methoden, es ist (in Java) schlicht das selbe.

Es gibt aber Programiersprachen, die sogar syntaktisch zwischen Funktionen (mit Rückgabewert) und Prozeduren (ohne Rückgabewert) unterscheiden. Der Begriff der Methode gehört in die OO-Welt und wird für Funktionen und Prozeduren gleichermaßen verwendet.

BTW: welches Buch ist das denn?

bye
TT

Ok , also es handelt sich um das Buch Informatik 4 vom Klett Verlag

Vielleicht habe ich mich etwas unklar ausgedrückt also bei Fakultät Fibonacci etc. gibt es keinen Übergabeparameter oder sehe ich das falsch?
Aber wenn es zum Beispiel darum geht das Gewicht der Personen in einer Warteschlange auszugeben gibt es Übergabeparameter und genau da liegt mein Problem
 
D

Dave_ue

Mitglied
du verzichtest weiterhin auf ein Beispiel für eine Methode oder irgendeine Definition, was die Methode anderes wäre als eine Funktion

kannst du nicht ' zu einer "Korbkette" rekursive Funktion implementieren', einfach behaupten es wäre eine Methode und fertig?
oder WO GENAU hakt es, geht es um Rückgabewert ja/ nein, um Parameter ja/ nein, ..?

allgemein kann man Rückgabewerte immer verhindern, indem man einen zusätzlichen Parameter herumschleppt, der das Ergebnis enthält,
das ist bei einer normalen Methode so, und bei einer rekursiven nicht anders,

bzw. eine Methode braucht ja sicher gar nicht erst eine Rückgabe, einfach mehrfach aufrufen wie eine rekursive Funktion und fertig?


Ja ist ziemlich schwer für mich das alles zu beschreiben ich versuch´s einfach mal hiermit
Java:
  public int anzahlDatenknotenGeben () { 
        return 1+naechsterLinks.anzahlDatenknotenGeben() + 
        naechsterRechts.anzahlDatenknotenGeben() ; 
    } 
    public void baumdatenAusgeben() 
    {   System.out.println();  
        naechsterLinks.baumdatenAusgeben () ;
        System.out.print("["); 
        inhalt.datenAusgeben () ; 
        System.out.println();  
naechsterRechts.baumdatenAusgeben () ; 
}}

Ich werde aus dem ganzen Ding nicht Schlau , warum bestimmte Dinge gemacht werden naechsterlinks.baumdatenausgeben naechsterrechts.anzahldatenknoten geben etc.
 
S

SlaterB

Gast
eine Welt bestehe aus zwei Kontinenten, jeder Kontinent aus 2 Ländern, jedes Land aus 2 Regionen, in jeder Region gibt es 2 Städte

die Städte haben Einwohnerzahlen 5000, 7000, ...
es ist doch leicht zu erkennen das man die Einwohnerzahl einer Region aus der Summe ihrer beiden Städte berechnen kann,
die Einwohnerzahl eines Landes aus der Summe ihrer beiden Regionen usw.,

ein Baum muss grundsätzlich verstanden werden, nimm X vom linken und rechten Nachfolger, dann das du X für den aktuellen Knoten,
so geht diese Rekursion
 
D

Daassan

Mitglied
also das erste gibt dir die gesamte anzahl an knoten eines baumes wieder

der root zählt sich selbst (1)
dann addiert er die anzahl der linken drauf (naechsterlinks.anzahlDatenknotenGeben)
und die anzahl der rechten (naechsterRechts.anzahlDatenknotenGeben)

ende währen dann die untersten blätter
da diese keine weiteren knoten unter sich haben die gefragten werden könten

speziell hier aber nullpointer da nich geprüft wird ob sie null sind^^


naja als rückgabe kommt dann immer die anzahl der linken + der rechten plus sich selbst

blätter würden 1 wieder geben die knoten an den die bläter hängen halt ne 3
sich selbst plus beide blätter oder 2 fals nur eins vorhanden

so geht das bis hoch bis das oberste root element sich plus die beiden zweige als endresultat wiedergibt

endpunkt oder der Terminierpunkt wären hier die blätter des baumes
ebenso im unteren beispiel wobei das wieder halbfertig aussieht

[OT]ups in meinem geistigen auge hab ich immer spacecat gelesen
tut mir leid bist ja ne ratte ^^ naja fast das gleiche nur hat das eine nen buschigeren schwanz :D

außerdem hab ich speziell nach java gefragt in anderen sprachen is mir das klar ;D[/OT]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
R Methoden rekursive Methoden Java Basics - Anfänger-Themen 6
B Methoden Rekursive Methoden Java Basics - Anfänger-Themen 2
M Stürzen alle Rekursive Methoden irgendwann ab? Java Basics - Anfänger-Themen 11
B OOP Einfach verkettete Liste - rekursive Methoden Java Basics - Anfänger-Themen 1
K Rekursive Methoden Java Basics - Anfänger-Themen 15
S rekursive methoden Java Basics - Anfänger-Themen 5
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Rekursive swapArray Methode Java Basics - Anfänger-Themen 69
D Rekursive Methode Java Basics - Anfänger-Themen 8
O Quersumme rekursive Methode Java Basics - Anfänger-Themen 3
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
J rekursive Methode Java Basics - Anfänger-Themen 26
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
M Rekursive Dateiliste erstellen mit Dateiendung(en) ?? Java Basics - Anfänger-Themen 4
S Rekursive Methode Java Basics - Anfänger-Themen 8
O Rekursive Methode Java Basics - Anfänger-Themen 4
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
K Rekursive Methode Java Basics - Anfänger-Themen 1
K Rekursive Methode für Fakultät mit BigInteger Java Basics - Anfänger-Themen 10
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
G Harmonische Rekursive Folge Java Basics - Anfänger-Themen 3
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
B Datentypen Suchbaum - Rekursive Ausgabe Java Basics - Anfänger-Themen 1
P Methoden Rekursive Methode für Potenzen Java Basics - Anfänger-Themen 2
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
B Rekursive Algorithmus schreiben Java Basics - Anfänger-Themen 8
S Eine rekursive Lösung Java Basics - Anfänger-Themen 4
S Int zu Hexadezimal - Rekursive Methode Java Basics - Anfänger-Themen 2
M Rekursive Suche in einem Feld Java Basics - Anfänger-Themen 11
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
shiroX OOP Rekursive und Iterative Definition Java Basics - Anfänger-Themen 2
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
C rekursive methode Java Basics - Anfänger-Themen 2
R rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
R Rekursive Methode, Files finden Java Basics - Anfänger-Themen 2
S rekursive folge verbessern Java Basics - Anfänger-Themen 2
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
S Methoden rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
E Rekursive Methode Java Basics - Anfänger-Themen 3
N Methoden Rekursive Fibonaccizahlen mit Array Java Basics - Anfänger-Themen 2
R Rekursive Ausgabe eines Binärbaums Java Basics - Anfänger-Themen 4
J Methoden Rekursive Potenz ohne Math.Pow() Java Basics - Anfänger-Themen 9
A Rekursive Methode in Iterative umwandeln Java Basics - Anfänger-Themen 6
S Labyrith Rekursive Wegsuche Java Basics - Anfänger-Themen 4
C Rekursive Methode - Ziffern in Zahl Java Basics - Anfänger-Themen 33
U Dezimal zu Hexadezimal rekursive Funktion Java Basics - Anfänger-Themen 8
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
L iterative und rekursive Folge Java Basics - Anfänger-Themen 20
G Rekursive Methode Java Basics - Anfänger-Themen 3
A rekursive Listen in Java? Java Basics - Anfänger-Themen 5
E Rekursive Methode mit Zufallsarray Java Basics - Anfänger-Themen 6
E Rekursive Methode Java Basics - Anfänger-Themen 18
U Rekursive lösung von pascal dreieck Java Basics - Anfänger-Themen 11
M Rekursive Methode - wo ist der Fehler? Java Basics - Anfänger-Themen 4
J rekursive methode Java Basics - Anfänger-Themen 6
H ScrollBar inaktiv / Rekursive Methode Java Basics - Anfänger-Themen 4
J Rekursive Methode Java Basics - Anfänger-Themen 11
G Rekursive Methode Java Basics - Anfänger-Themen 5
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
K Rekursive Funktion (Verständnissfrage) Java Basics - Anfänger-Themen 5
S Rekursive Bruch potenzierung Java Basics - Anfänger-Themen 2
D rekursive Summenberechnung Java Basics - Anfänger-Themen 8
J Rekursive Methode: Fakultaet berechnen Java Basics - Anfänger-Themen 5
E Rekursive definierten Folge Java Basics - Anfänger-Themen 10
A HILFE! Rekursive Funktion Java Basics - Anfänger-Themen 20
kulturfenster rekursive Binaere Suche Java Basics - Anfänger-Themen 12
F Rekursive Aufrufe, Parameterübergabe, call by reference Java Basics - Anfänger-Themen 3
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5
B Rekursive & schreiben im ArrayList Java Basics - Anfänger-Themen 2
J Rekursive Fkt. Java Basics - Anfänger-Themen 2
A Rekursive Dateisuche Java Basics - Anfänger-Themen 12
K rekursive Funktion mit mehreren Parametern Java Basics - Anfänger-Themen 5
G rekursive Methode Java Basics - Anfänger-Themen 3
N rekursive Beispiele Java Basics - Anfänger-Themen 3
G rekursive u iterative Methode Java Basics - Anfänger-Themen 8
G Rekursive Methode Java Basics - Anfänger-Themen 7
ven000m Rekursive Funktionen - Frage Java Basics - Anfänger-Themen 16
D rekursive ausgabe einer zahl Java Basics - Anfänger-Themen 14
S Rekursive Funktionen in imperative Funktionen umwandeln Java Basics - Anfänger-Themen 2
M Rekursive Binärsuche Java Basics - Anfänger-Themen 6
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 4
K Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Generics Methoden Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Anzeige


Oben