Страница 1 из 1

Поправьте задачу на С++

Добавлено: 13 ноя 2008, 23:20
Freeman12
Следующая задача:
Найти сумму ряда
s=x+X*x*x/3!+...+(x в степени 2n+1)/(2n+1)!
0.1<=x<=1 k=20(количество х взятых из промежутка)
y=(exp(x)-exp(-x))/2
Cделал следующую прогу,а она не рабтает правильно

#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{float a,b,c,k,dx,y,x,p;
cin>>a>>b>>k;
dx=(b-a)/9;
x=a;
while (x<=b)
{p=x*x;
float s=0, n=1,q=6;
c=(p*(x*(2*x+1))/q);
while(n<=k)
{s=s+c;
p=p*x*x;
n=n+1;
q=q*(2*n+1);
c=(p*(x*(2*x+1))/q);}
y=(exp(x)-exp(-x))/2;
cout.precision(2);
cout<<"\n | "<<x<<" | "<<s<<" | "<<y<<"|";
x=x+dx;
}
getch();
}


Помогите пожалуйсто!!

Re: Поправьте задачу на С++

Добавлено: 14 ноя 2008, 18:33
korisk
в формулах мну разбираться лень, а форматировать, на мой взгляд лучще так:

Код: Выделить всё

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
        float a,b,c,k,dx,y,x,p;
        cin>>a>>b>>k;
        dx=(b-a)/9;
        x=a;
        while (x<=b){
                p=x*x;
                float s=0, n=1,q=6;
                c=(p*(x*(2*x+1))/q);
                while(n<=k){
                        s=s+c;
                        p=p*x*x;
                        n=n+1;
                        q=q*(2*n+1);
                        c=(p*(x*(2*x+1))/q);
                }
                y=(exp(x)-exp(-x))/2;
                cout.precision(2);
                cout<<"\n | "<<x<<" | "<<s<<" | "<<y<<"|";
                x=x+dx;
        }
        cout << endl;
        return 0;
}

С уважением

Re: Поправьте задачу на С++

Добавлено: 15 ноя 2008, 12:30
Хыиуду
t=x;
for(i=1; i<n; i++)
{t*=x*x/(2*i*(2*i+1));
s+=t;
}

Re: Поправьте задачу на С++

Добавлено: 17 ноя 2008, 11:14
Freeman12
Уже разобрался,все СПАСИБО!Тему можно закрыть,кому надо пишите,дам правильную версию проги)