Функции

Тема в разделе "MS Visual C++", создана пользователем pingvinius, 21 дек 2009.

  1. pingvinius

    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]

    8.1.JPG
    8.2.JPG
    8.3.JPG
    8.4.JPG
     
  2. Jamin

    Jamin New Member

    Регистрация:
    13 дек 2008
    Сообщения:
    1
    Симпатии:
    0
    Код (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;
    }
     
  3. Yerty

    Yerty Гость

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

Поделиться этой страницей