Функции

  • Автор темы pingvinius
  • Дата начала
P

pingvinius

#1
выводит 2 таблицы, но не совсем правильно - данные в y(x) не совпадают с s(x).
после кода, пример и условие задания.

[codebox]
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
typedef double (*uf)(double, double, int &);

void tabl(double, double, double, double, uf);
double y(double, double, int &);
double s(double, double, int &);

int main()
{
cout<<setw(8)<<"x"<<setw(15)<<"y(x)"<<setw(10)<<"k"<<endl;
tabl(-1,1,0.1,0.01,y);
cout<<endl;
cout<<setw(8)<<"x"<<setw(15)<<"s(x)"<<setw(10)<<"k"<<endl;
tabl(-1,1,0.1,0.01,s);
return 0;
}

void tabl(double a, double b, double h, double eps, uf fun)
{
int k=0;

double sum;
for (double x=a; x<b+h/2; x+=h)
{
sum=fun(x,eps,k);
cout<<setw(8)<<x<<setw(15)<<sum<<setw(10)<<k<<endl;
}
}

double y(double x, double eps, int &k)
{
return -x+asin(x);
}

double s(double x, double eps, int &k)
{
double a,c,sum;
sum=a=c=x;
k=1;
while (fabs©>eps)
{
c=((2*k-1)*4*pow(k,2)*pow(x,2*k+1))/(8*pow(k,3)*(2*k+1));
a *=c;
sum +=a;
k++;
}
return sum;
}

[/codebox]

8.1.JPG
8.2.JPG
8.3.JPG
8.4.JPG
 

Вложения

  • 82.7 КБ Просмотры: 130
  • 58.8 КБ Просмотры: 140
  • 4.7 КБ Просмотры: 134
  • 8.7 КБ Просмотры: 121

Jamin

New member
13.12.2008
1
0
#2
C++:
double s(double x, double eps, int &k)
{
double a,c,sum;
sum = 0;a = c = x;
k = 0;
double ddd = 0;
while (fabs©>eps)
{
c=((2*k+1)*(2*k+1)*x*x)/((2*k+2)*(2*k+3));
a *=c;	
sum +=a;
k++;
}
return sum;
}
 
Y

Yerty

#3
Я тоже из БГУИР. Если препод Беспалов то пойдёт всё, что работает. :)