Передача Функции В Качестве Параметров Функций

Тема в разделе "C/C++/C#", создана пользователем prettynetty, 17 мар 2012.

Статус темы:
Закрыта.
  1. prettynetty

    prettynetty Гость

    Вычислить выражение
    . интеграл.JPG
    Интегралы вычислять с точностью = 0.00001.
    Проблема с функцией f2, остальное все вычисляет.
    <!--shcode--><pre><code class='"[i'>[/i]"]#include<windows.h>
    #include<math.h>
    #include<iostream.h>
    float f1(float);
    float f2(float);
    float f3(float);
    float integral(float(*f)(float),float a,float b,float e);
    main()
    {
    SetConsoleOutputCP(1251);
    float I=0;
    I+=integral(f1,0,0.4,0.00001); //находим интегралы для каждой функции и суммируем их
    cout<<"Значение выражения1 равно "<<I;
    cout<<endl;
    I+=integral(f2,2,2.5,0.00001);
    cout<<"Значение выражения2 равно "<<I;
    cout<<endl;
    I+=integral(f3,0,0.785,0.00001);
    cout<<"Значение выражения3 равно "<<I;
    cout<<endl;
    return 0;
    }
    float f1(float x)
    {
    float y;
    y=(pow(x,2)-1)/pow(10,2*x);
    return y;
    }
    float f2(float x)
    {
    float y;
    y=1./(x*pow(log(x),2));
    return y;
    }
    float f3(float x)
    {
    float y;
    y=pow(tan(x/2+3.14/4),2);
    return y;
    }
    float integral(float(*f)(float x),float a,float b,float e) //функция для нахождения определенного интеграла методом прямоугольников(первый параметр - указатель на функцию, второй-начало отрезка, третий-конец отрезка, четвертый-точность)
    {
    float zn=0,zn1=0,h,x;
    int n=4,it=0; // n-кол-во разбиений
    h=(b-a)/n;
    x=h/2;
    while(it<n)
    {
    zn+=h*f(x);
    x+=h;
    it++;
    }
    do
    {
    it=0;
    n*=2;
    h=(b-a)/n;
    x=h/2;
    zn1=0;
    while(it<n)
    {
    zn1+=h*f(x);
    x+=h;
    it++;
    }
    if(fabs(zn-zn1)<=e)
    return zn1;
    else zn=zn1;
    }
    while(1);
    }[/CODE]
     
Загрузка...
Похожие Темы - Передача Функции Качестве
  1. vladis222
    Ответов:
    1
    Просмотров:
    1.423
  2. Corexis
    Ответов:
    0
    Просмотров:
    87
  3. Shouldercannon
    Ответов:
    0
    Просмотров:
    498
  4. Shouldercannon
    Ответов:
    0
    Просмотров:
    397
  5. 123456789igor
    Ответов:
    0
    Просмотров:
    815
Статус темы:
Закрыта.

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