pow() <cmath>



  • Hallo,

    ich soll ein Programm zur Zinseszinsberechnung schreiben und dabei die pow() Funktion von <cmath> nutzen

    Das hab ich bisher gebastelt doch leider gibt es mir nicht die gewünschte ausgabe.
    Ich weiß, es sieht eventuell ein wenig abenteuerlich aus.

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main(){
    
      double kapital;
      double zinssatz;
    
      cout << "Gib dein Kapital an." << endl;
    
      cin >> kapital;
    
      cout << "Gib dein Zinssatz ein." << endl;
    
      cin >> zinssatz;
    
      cout << "Geben sie die Laufzeit in Jahren ein" << endl;
    
      double zeit = zeit*360 ;
      cin >> zeit;
    
      double guthaben = (kapital*1.0)*pow(zinssatz*100,zeit);
    
    
      cout << "Dein Guthaben beträgt nach " << zeit <<" Jahren "
           <<  guthaben
           << " $." << endl;
    
    
    return 0;
    
    
    }
    

    Kann wer helfen?

    Danke
    Lou



  • @Lou-Cyphr3 sagte in pow() <cmath>:

    Kann wer helfen?

    Womit denn? Noch hast Du ja keine Frage gestellt. Du musst Dich viel genauer ausdrücken. "doch leider gibt es mir nicht die gewünschte ausgabe" reicht da einfach nicht.

    Ich kann dir ja mal sagen, was meine IDE anzeigt, wenn ich Deinen Code reinkopiere:

      cout << "Geben sie die Laufzeit in Jahren ein" << endl;
    
      double zeit = zeit*360 ;  // ! variable 'zeit' is uninitialized when used within its own initialization.
      cin >> zeit;
    
    

    Klingt schonmal nicht so gut. Vielleicht passt etwas an der Stelle nicht. Und wieso multiplizierst Du eine Zahl explizit mit 1.0, und wieso multiplizierst Du den Zinssatz mit 100 ?



  • Mit der fehlerhaften Ausgabe.
    Aber ja, wenig Informationen.
    Die 1 und 100 wegen der Formel (Guthaben = Betrag*(1.0 + \frac{{Zinssatz}}{{100.0}})^{Laufzeit}).

    Auch wenn ich variable zeit mit einer Zwischenvariable überbrücke., gibt er mir ellenlange Fließkommazahl zurück.

    Meine Frage konkret : gehe ich falsch mit pow() um oder ist wo anders der Wurm drin?



  • @Lou-Cyphr3 Wenn Du Dir mal die Formel und Deinen Code anschaust, sollte Dir eines der Probleme direkt auffallen.



  • @HarteWare
    du meinst das frac?



  • @Lou-Cyphr3 unter anderem... frac steht für fraction ... zwinker zwinker



  • Liebe @HarteWare ,

      double guthaben = kapital*(1.0/pow(zinssatz*100,zeit));
    
    ich habe jetzt die Formel meines Erachtens, was scheinbar nicht ganz richtig ist,
    identisch eingegeben. Dennoch funktioniert es nicht.
    Mir scheint als wüssten Sie wo es hängt. Könnten sie eventuell mir einen deutlicheren Schubs geben?
    


  • Das gleiche Problem tritt bei einem übersichtlicheren Versuch auf.

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main()
    	{
    
    		double anfangskapital ;
    		double zinssatz ;
    		double laufzeit ;	
    
    		cout << "Anfangskapital :" << endl;
    		cin  >> anfangskapital;
    		cout << "Zinsatz        :"<< endl;
    		cin  >> zinssatz;
    		cout << "Laufzeit       :" << endl;
    		cin  >> laufzeit;
    		cout << "Endkapital     :" << anfangskapital * pow(zinssatz, laufzeit) << endl;
    
    		return 0;
    	}
    ``
    
    Die Ausgabe gibt hier auch hier eine e+ Formulierung  aus


  • @Lou-Cyphr3
    Die Formel lautet:

    Guthaben = Kapital * (1 + Zinssatz/100.0)^Jahre
    

    Und da reicht es nicht, wenn man die irgendwie oder ungefähr so eingibt, sondern es stimmt eben oder nicht. Und wenn Du dir diese verschiedenen Zeilen anschaust, fällt Dir doch hoffentlich ein Unterschied auf.

    double guthaben = (kapital*1.0)*pow(zinssatz*100,zeit);
    double guthaben =  kapital     *pow(zinssatz*100,zeit);
    double guthaben = kapital*pow(1 + zinssatz/100.0, zeit);
    double guthaben = kapital*(1.0/pow(zinssatz*100,zeit));
    

    Ich bin ja selbst auch kein riesen Hirn, aber die Formel darf man schon kapieren. Viel Erfolg!



  • Vielen Dank.

    Es ist schon spät.

    PS: Was ich nicht verstehe, warum hier im Forum immer so gemault wird!?



  • @Lou-Cyphr3 sagte in pow() <cmath>:

    Vielen Dank.

    Es ist schon spät.

    PS: Was ich nicht verstehe, warum hier im Forum immer so gemault wird!?

    Sind auch eher Ausnahmen. Aber manchmal sind die Fragestellungen der Anfänger auch eher mau, oder sie wollen fertige Lösungen präsentiert bekommen. Da kann auch schon mal einer maulig werden. Die Regel ist es aber nicht.
    D.h. wenn du eine konkrete Frage hast und etwas Eigeninitiative mitbringst, dann wird dir hier auch gern geholfen. Die Zinseszinsformel solltest du aber entweder drauf haben oder in Eigenrecherche rausfinden.


Anmelden zum Antworten