Обработка математики: 40%

printРабочее место участника

printЗадачи

2727. Функции и подпрограммы 42

Ограничения: время – 200ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите функцию Bisection, псевдокод для которой написан ниже.

...
double r=Bisection(sin,2.0,4.0,50);
// r=3.1415926
...

В качестве решения необходимо отправлять файл, содержащий только определение функции!

Алгоритм Bisection(f,a,b,n)
// Входные данные: непрерывная на [a,b] функция f(x),
// f(а)f(b)<0, количество итераций n
// Выходные данные: Приближенное значение x
// корня уравнения f(x)=0 на отрезке [a,b]
while n>0 do
  
quad val larr f(x)
quad if val = 0
quad quad return x
quad if val*f(a) <0
quad quad b larr x
quad else
quad quad a larr x
quad n larr n-1
return a

loading