Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Вычислить сумму


Автор: popapo 28.9.2009, 18:47
К следующей лабе сказали подготовиться, проходим си всего 3 неделю а уже задают вычеслять сумму бесконечного ряда  smile 

Я написал что смог

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include <iostream.h>
#include <math.h>
#include <tchar.h>
//---------------------------------------------------------------------------

#pragma argsused

faktorial(int k)
{
 double i;
 double p=1;
  for(i=1;i<=k;i++)
  p = p * i;

  if(k == 0)
  p = 1;
return p;
}

int _tmain(int argc, _TCHAR* argv[])
{
    int n,fak;
    double eps,f,t,S,x;
    cout<<"Enter x:"; cin>>x;
    cout<<"Enter eps:"; cin>>eps;
    n = 0; t = 1; S = 0;
     while(t >= eps)
      {
         fak = faktorial(n);
         cout<<"n="<<n<<" t="<<t<<" S="<<S<<" Fak"<<n<<"="<<fak<<endl;
         f = x - (pow(x,n)/fak);
         t = t * f;
         S = S+t;
          n=n+2;
      }

     cout<<"cox(x)/x = "<<S<<endl;
     cin.get();
    return 0;
}
//---------------------------------------------------------------------------


Вот этот кусок нам препод в примере подобном так писал
t = t * f;
S = S+t;

Эту строку я просто для отклаки написал
cout<<"n="<<n<<" t="<<t<<" S="<<S<<" Fak"<<n<<"="<<fak<<endl;

После 3 шага, t становиться отрицательным и офигенно большим, в следствии и неправильная сумма какая то...

Вычисляеться по этой формуле
http://radikal.ru/F/i001.radikal.ru/0909/85/296bc4d6ce84.jpg.html

ЗЫ
Сумма по идее должна получиться равной единице.

Автор: popapo 28.9.2009, 19:37
Все не надо, помогли разобраться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)