kleines prob weiss ned warum



  • und warum terminiert das nicht??

    wenn ich bedingung hab n==0 und sonst mein und wenn das war ist geb ich 1 zurück und wenn es falsch is verringere ich mein n durch das effzins(z,(n-1)) immer um 1

    warum sollte das denn dann nicht terminieren???

    und jo so sieht das makro aus



  • ok also

    das mit den anführungszeichen war es bei der cond.h

    mein prob iss grad nur wie bekomme ich aus der doofen cpp datei ne exe weil mein doofer übungsleiter will da ne exe ham ^^



  • QuarkMan schrieb:

    warum sollte das denn dann nicht terminieren???

    Es kann nicht terminieren, wenn, wie du gesagt hattest, cond eine Funktion ist, weil alle Funktionsparameter vor dem Aufruf ausgewertet werden.

    und jo so sieht das makro aus

    Dann sag nicht, das es eine Funktion ist. 🙄



  • wie alle parameter werden vor funktionsaufruf gestartet???

    wie soll ich das verstehen?



  • wie soll denn ie

    cond(*****)
    aussehen damit sie rekursiv

    (1+(z/n)^n berechnet??



  • Bitte genauer lesen.

    Ich sagte: Das kann nicht terminieren, wenn cond eine Funktion ist.

    cond ist aber keine Funktion, sondern ein Makro.

    Was das erstellen einer ausführbaren Datei angeht, da wendest du dich am besten vertrauensvoll an das für deinen Compiler/IDE zuständige Forum.



  • ok also terminieren tut es aber es rechnet blos voll den scheiss aus ^^

    also es soll ((1+(z/n)^n)-1 berechnet werden

    nur versteh ich nur warum es das nicht tut hab es nun umgeschrieben so wie ich rekursion verstehen muesste es doch so gehen

    cond(n>=1,(1+(z/n))*effzins(z,n-1),1);



  • das -1 hab ich hinten bei der ausgabe mit eingerechnet die Rekursion soll nur mein (1+(z/n)^n berechnen



  • also meine rekursion terminiert zwar jedoch:

    berechnet sie nicht (1+(z/n)^n sondern

    summe von i=0 bis n von (1+z/i)^i

    wie kann ich eine potenz durch eine rekursion darstellen?



  • so stimmt das prog nun:

    #include <iostream>
    #include "cond.h"

    using namespace std;

    float effzins(float z, int n)
    {
    return cond(n>=1,(1+(z))*effzins(z,n-1),1);
    }

    int main()
    {
    float z;
    int n;
    cout << "Geben Sie bitte den Zinssatz ein:"<<endl;
    cin >> z ;
    cout << "Geben sie die Zahl der Verzinsungen pro Jahr ein"<<endl;
    cin >> n ;
    cout << "Der effektive Zinssatz betraegt:"<< (effzins(z/n,n)-1)*100 <<"%" <<endl;
    cin >> z;
    }


Anmelden zum Antworten