a
float
Нижній межа інтегрування
b
float
Верхній межа інтегрування
h
float
Крок розбиття відрізка
e
float
Допустима відносна помилка
f
float (*)
Покажчик на інтегруються фун - цию
s_ab
float
Сума значень фун - ції в точках a і b
s_even
float
Сума значень фун - ції в непарних точках
s_odd
float
Сума значень фун - ції в парних точках
s_res
float
Поточний результат інтегрування
s_pres
float
Попередній результат інтегрування
4. Лістинг програми
# include
# include
/* Прототип фун - ції, що обчислює інтеграл */
float integral (float, float, float, float (*) (float));
/* Прототип фун - ції, що задає інтегруються фун - цию */
float f (float);
main ()
{
float result;
result = Integral (0, 6, .1, f);
printf ("% f", result);
return 0;
}
/* Реалізація фун - ції, що задає інтегруються фун - цию */
float f (float x)
{
/* Функція f (x) = x Ві (x - 5) ВІ */
return pow (x, 3) * pow (x - 5, 2);
}
/* Реалізація фун - ції, що обчислює інтеграл */
float integral (float a, float b, float e, float (* f) (float))
{
int n = 4, i;/* Початкове число розбиття 4 */
float s_ab = f (a) + F (b)/* Сума значень фун - ції в a і b */
float h = (b - a)/n;/* Обчислюємо крок */
float s_even = 0, s_odd;
float s_res = 0, s_pres;
/* Сума значень фун - ції в непарних точках */
for (i = 2; i
s_even + = f (a + I * h);
}
do {
s_odd = 0;
s_pres = s_res;
В
/* Сума значень фун - ції в парних точках */
for (i = 1; i
s_odd + = f (a + i * h);
}
/* Підрахунок результату */
s_res = h/3 * (s_ab + 2 * s_even + 4 * s_odd);
/* Уникаємо ...