Funktion -> Brüche aufsummieren
-
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; }