?
Guten Abend Community.
Ich habe eine Aufgabe erhalten, mit der ich ein bisschen Probleme habe:
Schreiben Sie eine Funktion, die die Zahlen ½, ¼, 1/8, 1/16, ... aufsummiert Entwickeln
Sie die Funktion in zwei Varianten:
Die Funktion erhält als Übergabeparameter eine Ganzzahl, die angibt, wie viele
Summanden für die Summe berücksichtigt werden sollen. Zum Beispiel bedeutet die
Übergabe von 20, dass der letzte berücksichtigte Summand 1/220 ist.
Die Funktion erhält als Übergabeparameter einen Wert für die Genauigkeit (z.B.
epsilon=0.001) mit der die Summe berechnet werden soll. Es soll so lange summiert
werden, bis gilt summand < epsilon, wobei summand=1/2n, mit n=1,2,3,4,5,...
In beiden Fällen soll die Funktion den berechneten Summenwert als Rückgabewert
zurückgeben. Demonstrieren Sie die Funktionsweise der beiden Funktionen mit einem
geeigneten Hauptprogramm. Experimentieren Sie mit verschiedenen Größen der
Übergabeparameter.
Mein bisheriger Fortschritt:
#include <iostream>
#include<math.h>
#include<cstdlib>
using namespace std;
double funktion(int z);
int main()
{
int zahl;
cout << "Bitte geben Sie eine Ganzzahl ein: ";
cin >> zahl;
cout << "Ergebnis: " << funktion(zahl) << endl;
}
double funktion(int zahl)
{
double summand;
double ergebnis;
double thenext;
double max =((double)1/2,zahl);
for(int i=1;i>0;i=i*2)
{
summand=(double)1/i;
thenext=(double)1/(i*2);
if(summand == max)
{
return ergebnis;
}
ergebnis=ergebnis+thenext;
}
return ergebnis;
}