Выбрать соревнование | Задачи | Послать решение | Результаты проверки | Статистика по задачам | Вопросы и ответы | Результаты соревнования | Состояние сервера | Изменить данные | Управление командой | Помощь |
01/09/2007 | Основы программирования. Функции (44) |
Ограничения: время – 200ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение 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