logo search
ООП для Заоч / Пинчук Лозовская Программир на С

Void Bisec(funx f, double a, double b, double eps, double& X)

{ for (;;) { x = (a+b)/2.;

if (b-a<eps) break;

if (F(a)*F(x)<0) b=x; else a=x;

}

}

Першим параметром функції є параметр F типу funx. Це є покажчик на ту функцію, яка подає наше рівняння F(x) = 0 . У зверненні до функції Bisec першим параметром пишеться просто ім’я функції, яка є лівою частиною рівняння. Сам тип funx визначений у модулі syst.h таким чином:

typedef double (*funx)(double);

Давайте подивимось, як буде виглядати програма в цілому, якщо розв’язується таке рівняння:

.

Розв’язок шукається на інтервалі [a,b] = [-1, 2] з точністю 110-6.

// Приклад 1

#include <syst.h>