double find



Автор Костя задал вопрос в разделе Другие языки и технологии

C++ что означает данное объявление функции double root_find( double f(double) ) ? и получил лучший ответ

Ответ от Алексей Кузьминов[гуру]
root_find возвращает корень и значение скармливаемой ей функции в этом корне.
Способ кормления: функция передаётся в виде указателя, но синтаксис позволяет вызывать эту функцию как обычную.
ЗЫ
То, что помечено как "//recursion" рекурсией НЕ ЯВЛЯЕТСЯ.
Это просто вызов функции f в точке (a+b)/2
Рекурсия как раз ниже: там отрезок разделяется на 2 части и в зависимости от шага функция вызывается с отрезком в 2 раза меньшим.
Код идиотский (рекурсия не нужна) , но работает на небольших отрезках и приемлемом eps.
ЗЗЫ
Опасно другое: только то, что на [a, b] ПРЕДПОЛОЖИТЕЛЬНО существует ЕДИНСТВЕННЫЙ корень делает этот алгоритм его нахождения работоспособным.
Да и ещё: не ищите корни (1.0/x - 1.0) на отрезке [-2, 2].

Ответ от Paperrose[гуру]
ты в функцию параметром передаешь другую функцию
по сути при вызове root_find будет что-то такое:
root_find(func1(10))
а так, как func1 возвращает конкретное значение, то это и не противоречит ее использованию в качестве переменной

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: C++ что означает данное объявление функции double root_find( double f(double) ) ?
Число двойной точности на Википедии
Посмотрите статью на википедии про Число двойной точности
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*