Вычисление определенного интеграла методом прямоугольников

Рейтинг: 1Ответов: 1Опубликовано: 08.12.2014

Вот написал простенькую прогу по вычислению определенного интеграла методом прямоугольников. Но что-то в консоли ничего не выводится. Вот код:

#include <iostream>
#include <math.h>
using namespace std;
float f(float x)
{
    return(1+sin(x)/(1+cos(x)));
}
float integralpram(int a,int b,int n)
{
    float h,S,x;
    int i;
    h=(b-a)/n;
    S=0;
    for(i=0;i<n-1;i++)
    {
        x=a+i*h;
        S=S+f(x);
    }
    S=h*S;
    return S;
}
void main()
{
   float  y;
   y=integralpram(1,5,10);
   cout<<y;
   system("PAUSE");
}

Ответы

▲ 2Принят

Потому как вычисленное значение h равно нулю. (5-1) / 10 == 0, а Вы ожидаете 0.4.

Пишите, к примеру, так:

h=(b-a) * 1.0 /n;