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;
    
    }
    

Anmelden zum Antworten