Guten Abend, ich versuche, den Kosinus zu berechnen, aber ich weiß nicht, wo ich falsch liege. Die Ergebnisse sind ungenau und mit falschem Vorzeichen (-0,54 anstelle von 0,5 für einen 60-Grad-Winkel), selbst wenn die eingegebene Annäherung sehr hoch ist (d. H. 0,000001); Für einen Winkel von 30 Grad wird kein Ergebnis angezeigt, aber der Code läuft noch (ich denke, die While-Schleife endet nicht).Kosinus berechnen in C++ mit Taylor-Serie und Näherungseingabe
#include <iostream>
#include <cmath>
using namespace std;
double fact (int);
double eps;
double PI=3.141592654;
double fact (int num){
if (num==0 || num==1)
return 1;
else
return num*fact(num-1);
}
int main(){
double deg;
double rad;
double term=0.0;
double sum=0.0;
double cosine=0.0;
int i=1;
cout<<"You have chosen to calculate the cosine. Insert degrees of the desired angle: \n";
cin>>deg;
rad=(PI/180)*deg;
cout<<"Value from the c++ library is: \n"<<cos(rad);
cout<<"\nProceeding to cosine calculation, insert desired approximation here: \n";
cin>>eps;
while ((cos(rad)-fabs(cosine))>eps){
term=pow(rad,2*i)*((pow(-1.0,i))/fact(2*i));
sum+=term;
i++;
cosine=sum;
}
cout<<"Value of cosine is: "<<cosine;
}
Was könnte ich tun, um diese Fehler zu korrigieren? Danke im Voraus.
Sie sollten 'M_PI' anstelle von PI selbst verwenden. – Chris
Willkommen bei Stack Overflow! Es klingt, als müssten Sie lernen, wie Sie mit einem Debugger Ihren Code durchgehen. Mit einem guten Debugger können Sie Ihr Programm Zeile für Zeile ausführen und sehen, wo es von dem, was Sie erwarten, abweicht. Dies ist ein essentielles Werkzeug, wenn Sie programmieren wollen. Weiterführende Literatur: ** [Wie kleine Programme zu debuggen] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver
Erfahren Sie, wie Sie einen Debugger und Schritt verwenden durch den Code Zeile für Zeile während der Überwachung der Variablen und ihrer Werte. –