M
Michel
Всем добрый! С++ только начинаю. Вот выдрал из программы кусок и оформил в самостоятельную. При вводе на запрос х = 1 сообщение -1.#IND. И только на ввод ноля выдает 0. На самом деле, если я не ошибаюсь, это разложение в ряд фунцкии sin(2x). При уменьшении счетчика n результат выдает, но неправильный. Что это значит?
На самом деле потом будет цикл не for, а while и до нужной погрешности.
Вот листинг:
#include "stdafx.h"
#include "math.h"
#include "iostream.h"
#include "stdio.h"
long fact(int n);
int main(int argc, char* argv[])
{
double x;
double t = 0;
//cout<<Fsin(0,1);
cout<<"Vvedite x: ";
cin>>x;
cout<<endl;
for (int n =1;n<20;n++)
t = t+ pow(-1,n-1)*pow(2*x,2*n-1)/fact(2*n-1);
cout<<t;
return 0;
}
long fact(int n)
{
int result;
int i;
i = 1;
result = 1;
do
{
result = result*i;
i = i+1;
}
while(i<=n);
return result;
}
Помогите, пожалуйста!
На самом деле потом будет цикл не for, а while и до нужной погрешности.
Вот листинг:
#include "stdafx.h"
#include "math.h"
#include "iostream.h"
#include "stdio.h"
long fact(int n);
int main(int argc, char* argv[])
{
double x;
double t = 0;
//cout<<Fsin(0,1);
cout<<"Vvedite x: ";
cin>>x;
cout<<endl;
for (int n =1;n<20;n++)
t = t+ pow(-1,n-1)*pow(2*x,2*n-1)/fact(2*n-1);
cout<<t;
return 0;
}
long fact(int n)
{
int result;
int i;
i = 1;
result = 1;
do
{
result = result*i;
i = i+1;
}
while(i<=n);
return result;
}
Помогите, пожалуйста!