[ Foro de C++ ]
Necesito hacer un programa para calcular la formula de taylor, con las condiciones que vienen en el codigo, pero no pasa de dos veces el ciclo, alguien sabe como arreglarlo?
/*Programa que realiza el calculo de la formula de Taylor
y termina el calculo cuando el residuo entre el (cos x en n)
y el (cos x en n-1) es menor a 0.0001*/
#include<iostream>
#include<math.h>
using namespace std;
void conver_grados(float ang, float *r);
unsigned long factorial(int n);
int main(){
int n=0;
float ang,x;
long double result2=0,fact,resultado=0;
cout<<"Introduce el angulo x: ";
cin>>ang;
conver_grados(ang,&x);
cout<<"Ang= "<<x<<endl;
do{
resultado=resultado+((pow(-1,n)/factorial(2*n))*pow(x,2*n));
cout<<resultado<<endl;
result2=result2+((pow(-1,n-1)/factorial(2*n-1))*pow(x,2*n-1));
n++;
}while(((pow(-1,n-1)/factorial(2*n-1))*pow(x,2*n-1))-((pow(-1,n-2)/factorial(2*n-2))*pow(x,2*n-2))>0.0001);
cout<<"El coseno del angulo es: "<<resultado<<endl;
return 0;
}
void conver_grados(float ang, float *r){
*r=ang*M_PI/180;
}
unsigned long factorial(int n){
unsigned long f=1;
for(int i=1;i<=n;i++){
f=f*i;
}
return f;
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)