C++ - Programm bei Rekursion

Neue Frage »

Sabrinalein Auf diesen Beitrag antworten »
C++ - Programm bei Rekursion
Hallo!

Wie schreibt man ein C++ - Programm, dass die Werte für mittels Vorwärts- und Rückwärtsrekursion berechnet?

1) Vorwärtsrekursion ,

2) Rückwärtsrekursion , .

Vielen Dank schon mal für Eure Hilfe.
kiste Auf diesen Beitrag antworten »

Mit rekursion und nem globalem array bzw. for schleife und array(in anderen Worten: Es wird schon einen Grund haben warum du eine solche einfache Aufgabe lösen musst)
Sabrinalein Auf diesen Beitrag antworten »

Das Problem ist, dass ich noch nie programmiert habe. Und somit auch dies nicht so einfach lösen kann.
kiste Auf diesen Beitrag antworten »

Genau das meinte ich. Programmieren lernst du niemals wenn dir jemand die Lösung vorsagt.

Fange langsam an:
-Nehme ein Hello World Programm
-Füge ein Array mit 30 Elementen dazu
-Schreibe dann die initialisierung der werte
Sabrinalein Auf diesen Beitrag antworten »

Kannst du mir denn ne Seite sagen, wo ich das etwas lernen kann?
kiste Auf diesen Beitrag antworten »

Nein, aber solche Aufgaben fallen ja nicht vom Himmel. Ihr werdet bestimmt Material bekommen haben ansonsten eben eine beliebige Suchmaschine bemühen
 
 
Sabrinalein Auf diesen Beitrag antworten »

Hab mich mal dran versucht und folgendes rausbekommen:

Für die Vorwärtsrekursion

int s = (exp(1) - 1)/(exp(1);
int i = 0;
while (i != 30) {
i = i + 1;
s = s + i;
}

Wenn ich laufen lasse, bekomme ich aber einige Fehler.

Ich muss diese Zahlen für Numerik ausrechnen.
Sabrinalein Auf diesen Beitrag antworten »

Kann mir wirklich keiner Helfen? Ich hab noch nie programmiert, und weiss dehalb nicht, was du meinst.

Ich brauch diese Werte zum Arbeiten.

Wäre echt nett wenn mir jemand weiterhilft.
Thomas Auf diesen Beitrag antworten »

Überprüf z.B. mal deine Klammersetzung.
AD Auf diesen Beitrag antworten »

Ich äußere mich mal nur zum mathematischen Teil - konkret zu deiner Rückwärtsrekursion:

Die Rückwärtsiteration ist richtig, aber wie in aller Welt kommst du denn bloß auf diesen Startwert

?

Wenn ich das richtig überblicke, dürfte diese Gleichung für alle falsch sein, schon von Beginn an. unglücklich


Tatsächlich kann man durch Induktion beweisen

,

wobei man diese Summe nicht wesentlich vereinfachen kann, es sein denn durch eine Darstellung als Reihenrest

,

welcher z.B. auch die Abschätzung für alle ermöglicht.


Ich nehme an, diese Aufgabe wurde im Rahmen einer Numerikvorlesung gestellt? Augenzwinkern
Sabrinalein Auf diesen Beitrag antworten »

Diese Aufgabe stammt von einem Integral.

Ich hab mal versucht zu programmieren und folgendes rausbekommen:

Zitat:
double y(int i)
{
if (i == 0) {
return (1-exp(1.0))/exp(1.0);
} else {
return 1-i*y(i);
}
}

int main () {
ofstream fout( "1.txt" );
fout << y (0) ;
}


Nun habe ich noch folgende Probleme:

1) Wie bekomme ich dann alle Werte angezeigt, also von 0,...,30
2) Falls bekomme ich eine Fehlermeldung: System.StackOverflowException

Kann mir jemand weiterhelfen?
AD Auf diesen Beitrag antworten »

Der Stack-Overflow war ja zwangsläufig. Wenn schon so, dann muss es

code:
1:
2:
3:
4:
5:
6:
7:
8:
double y(int i)
{
  if (i == 0) {
    return (1-exp(1.0))/exp(1.0);
  } else {
    return 1-i*y(i-1);
  }
}

lauten!
Sabrinalein Auf diesen Beitrag antworten »

Danke für die Korrektur. Die einzelnen Werte gehen jetzt.

Und wie bekomme ich dass hin, dass alle Werte von 0 bis 30 angezeigt werden bzw. in der Textdatei gespeichert wird?
AD Auf diesen Beitrag antworten »

Das sind jetzt aber wirklich langsam Fragen, die ins Informatikforum gehören!
Sabrinalein Auf diesen Beitrag antworten »

OK... werd sie im Infomatikboard stellen. Vielen Dank nochmal für Eure Hilfe.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »