Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hey Leute, ich bin neu und leider kein Java auf diesem laptop installiert, kann mir jemand helfen und den Quelltext schreiben? :rtfm:
Ich brauche für die Methode fakultat(n) die rekursive
und die iterative Lösung.
fakultaet(n) //Berechnet die Fakultät von n
WENN n = 0
gib den Wert 1 zurück
SONST gib den Wert von n * fakultaet(n - 1)
Du googlest nach JDK und lädst es dir runter. Anschließend downloadest und installierst du Eclipse.
dann erstellst du ein neues Projekt und dort eine Klasse. Dann schreibst du eine Methode, die genau das macht, was deine Aufgabe vorgibt. Dann rufst du diese Methode in der main-Methode deiner Klasse auf und gibst das Ergebnis auf die Konsole aus.
Ok, weiterhin brauche ich hierbei Hilfe, ich soll ein Aufrufschema dieser Methode aufschreiben und wieviele rekursive Aufrufe stattfinden.
"
zweihoch(3)
WENN n = 0
gib den Wert 1 zurück
SONST gib den Wert von 2 * zweihoch(3 - 1)
"
(die 3 war eine n aber soll jetzt 3 sein)
so weit bin ich
AUSGABE:
8
wie ihr seht habe ich momentan kaum ahnung. Kann mir jemand helfen?
die nächste aufgabe ist ähnlich "Erstellen Sie für die Methode summe(n) ein Aufrufschema mit n = 4, also
summe(4). Wie viele rekursive Aufrufe finden jeweils statt?
Was ist das Ergebnis?
summe(n) //Berechnet die Summe der natürlichen Zahlen bis n (1+2+3+4+…+n)
WENN n = 0
gib den Wert 0 zurück
SONST gib den Wert von n + summe(n - 1) zurück "
Hast du verstanden dass ich außer für die Aufgabe ganz oben nur das Aufrufschemata brauche, also die Ausgabe?
Würdest du mir in diesem Fall helfen und sagen welche Ausgabe als nächstes kommt, da ich nicht wirklich weiß ob die 8 überhaupt richtig ist, ich muss doch zumindest mal einen Anfang machen um zu verstehen wie das abläuft.
JDK kann ich auf diesem Laptop leider garnicht installieren, ich versuch einfach im Editor ein Quellcode dazu zu erstellen, aber ich brauch einfach einen richtigen Start, kannst du mir da helfen?
fakultaet(n) //Berechnet die Fakultät von n
WENN n = 0
gib den Wert 1 zurück
SONST gib den Wert von n * fakultaet(n - 1)
Dann muss ich nur den Text lesen:
fakultaet(5)
Ist n = 0? Nein. Also 5 * fakultaet(5 - 1);
Ist n = 0? Nein. Also 4 * fakultaet(4 - 1);
Ist n = 0? Nein. Also 3 * fakultaet(3 - 1);
Ist n = 0? Nein. Also 2 * fakultaet(2 - 1);
Ist n = 0? Nein. Also 1 * fakultaet(1 - 1);
Ist n = 0? Ja, dann 1.
Und nun Rückwärts.
Das Ergebnis von fakultaet(1 - 1) = 1. Also steht da 1 * 1;
Das Ergebnis von fakultaet(2 - 1) = 1. Also steht da 2 * 1;
Das Ergebnis von fakultaet(2 - 1) = 2. Also steht da 3 * 2;
fakultaet(n) //Berechnet die Fakultät von n
WENN n = 0
gib den Wert 1 zurück
SONST gib den Wert von n * fakultaet(n - 1)
Dann muss ich nur den Text lesen:
fakultaet(5)
Ist n = 0? Nein. Also 5 * fakultaet(5 - 1);
Ist n = 0? Nein. Also 4 * fakultaet(4 - 1);
Ist n = 0? Nein. Also 3 * fakultaet(3 - 1);
Ist n = 0? Nein. Also 2 * fakultaet(2 - 1);
Ist n = 0? Nein. Also 1 * fakultaet(1 - 1);
Ist n = 0? Ja, dann 1.
Und nun Rückwärts.
Das Ergebnis von fakultaet(1 - 1) = 1. Also steht da 1 * 1;
Das Ergebnis von fakultaet(2 - 1) = 1. Also steht da 2 * 1;
Das Ergebnis von fakultaet(2 - 1) = 2. Also steht da 3 * 2;
Danke, ich versuche das in einem Online Editor in Quellcode umzusetzen
public class Fakultaet{
public static void main(String []args){
public static void main(String []args){
int n = ''
fakultaet(n) //Berechnet die Fakultät von n
if { n = 0
return 1
}else{ n * fakultaet(n - 1)
Kannst du gucken ob das hier richtig ist und ggf. die weitere Ausgabe sagen?
zweihoch(3)
WENN n = 0
gib den Wert 1 zurück
SONST gib den Wert von 2 * zweihoch(3 - 1)
AUSGABE:
8
summe(4) //Berechnet die Summe der natürlichen Zahlen bis n (1+2+3+4+…+n)
WENN n = 0
gib den Wert 0 zurück
SONST gib den Wert von n + summe(n - 1) zurück
AUSGABE:
10+45
Ich blick echt nicht ganz durch muss ich dir sagen.
Das macht nix. Zwischen meiner Antwort und deiner Rückfrage, sind gerade mal 5 Minuten verstrichen. Für mich wäre das auch eine knappe Zeit zu verstehen, wie das geht.
Die Syntax deiner Fakultät scheint auch eher willkürlich zu sein ;D
Die Lösung steht ja praktisch schon in der Aufgabenstellung. Lässt sich 1zu1 in Code übertragen.
Nachvollziehen wirst du wohl selbst hinbekommen, einfach mal ein Blatt Papier nehmen und eine Fakultät mit Hilfe des Codes per Hand ausrechnen.
Java:
public static int fkt(int n){
return (n == 0)
? 1
: n * fkt(n-1);
}
Das macht nix. Zwischen meiner Antwort und deiner Rückfrage, sind gerade mal 5 Minuten verstrichen. Für mich wäre das auch eine knappe Zeit zu verstehen, wie das geht.
Die Lösung steht ja praktisch schon in der Aufgabenstellung. Lässt sich 1zu1 in Code übertragen.
Nachvollziehen wirst du wohl selbst hinbekommen, einfach mal ein Blatt Papier nehmen und eine Fakultät mit Hilfe des Codes per Hand ausrechnen.
Java:
public static int fkt(int n){
return (n == 0)
? 1
: n * fkt(n-1);
}
Ja und du regst dich darüber total auf ^^, vermutlich weil du mit Kritik nicht umgehen kannst. - Wir machen hier keine Hausaufgaben... Aber wir helfen dabei.
---
"Rekursiver Fall" sagst du, was soll denn zB bitte das
" ? 1
: n * fkt(n-1);" ?
Man alter hilf mir doch worum ich dich gebeten habe, die Ausgabe von "zweihoch(3)
WENN n = 0
gib den Wert 1 zurück
SONST gib den Wert von 2 * zweihoch(3 - 1)
AUSGABE:
8
summe(4) //Berechnet die Summe der natürlichen Zahlen bis n (1+2+3+4+…+n)
WENN n = 0
gib den Wert 0 zurück
SONST gib den Wert von n + summe(n - 1) zurück
AUSGABE:
10+45
"
Bei was anderem kannst du einfach nicht helfen, merk schon kiddo.
Die Lösung steht ja praktisch schon in der Aufgabenstellung. Lässt sich 1zu1 in Code übertragen.
Nachvollziehen wirst du wohl selbst hinbekommen, einfach mal ein Blatt Papier nehmen und eine Fakultät mit Hilfe des Codes per Hand ausrechnen.
Java:
public static int fkt(int n){
return (n == 0)
? 1
: n * fkt(n-1);
}
als rekursive Lösung, brauche noch die iterative aber vllt reicht es auch momentan , beides werde ich dann Morgen richtig in Java implementieren, habe dazu momentan einfach keine Möglichkeit.
Kannst du mir bei den oberen Ausgaben helfen, ich brauche wirklich nur die Ausgabe von den oben stehenden, kannst du mir wenigstens sagen ob die in dei richtige richtung gehen? :shock:?
Doch dann kann ich mir das herleiten.
Ok wenn du schon da nicht helfen willst sag mir ob die Ausgabe hier korrekt ist
zweihoch(3)
WENN n = 0
gib den Wert 1 zurück
SONST gib den Wert von 2 * zweihoch(3 - 1)
AUSGABE:
8
summe(4) //Berechnet die Summe der natürlichen Zahlen bis n (1+2+3+4+…+n)
WENN n = 0
gib den Wert 0 zurück
SONST gib den Wert von n + summe(n - 1) zurück