P
pingvinius
выводит 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]
после кода, пример и условие задания.
[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]