Рекурсия

  • Автор темы magdalena
  • Дата начала
M

magdalena

Гость
#1
У меня есть проблема. Задание :"Произвести программную реализацию расчета приблизительного значения функции y=x+x3/3x! + x5/5x! + x7/7x! + ..., разложивши функцию sh(x) в ряд Тейлора. x3 - означает в кубе. / - разделить. Программа запускаеться в кампиляторе но не выдает результат. Может где ошибка. Кто подскажет , пожалуйста.
Код:

#include<iostream>
#include<math.h>
#include<conio.h>
usingnamespace std;
double function1 (int n);

double function (int n, int x, int e);
int main(){
double x, dx, xbegin, xend, e,i,b,n;
printf("Enter xbegin, xend, dx, e:\n");
scanf("%f %f %f %f",&xbegin,&xend,&dx,&e);

for (x = xbegin; x <= xend; x += dx)
{
b=((2*n-1)*pow(x,2*n+1)/(function1 (n)));
b=+b;
//printf(" result);
printf("\n Calculated values: %f ", b );
b=0;
}
getch();
//return 0;
}
double function1 (int n)
{
if (n==1)
return 1;
else
return n* function1(n-1);
}
double function2 (int n, double x, double e)
{
double res=(n%2==0)?-1:1;
res*=function2(n,x,e);
res=(fabs(res)<e)?0:res+function2(n+1, x, e);

return res;
}
 
R

rrrFer

Гость
#2
наверное она зацикливается, пройдись отладчиком и посмотри какие значения тут используются:
Код:
for (x = xbegin; x <= xend; x += dx)