Форум программистов, компьютерный форум CyberForum.ru

Использование указателей на функции - C++

Восстановить пароль Регистрация
 
Orion6767
2 / 2 / 0
Регистрация: 26.10.2010
Сообщений: 67
25.04.2011, 13:51     Использование указателей на функции #1
Составить одну из двух задач с использованием указателя на функцию

1. Составить функцию нахождения корня уравнения f(x)=0 методом половинного деления интервала [a, b], если функция f(x)=0 непрерывная на этом интервале и в конечных точках интервала принимает значения разных знаков. Корень вычислить с точностью e(|f(x)|<e). Интервал [a, b] разбить на отрезки с шагом h. Используя эту функцию найти корни уравнений: x^3-2=0 на [-2, 3], h=0,5; e^x-2x-10=0 на [0,20], h=2.

2. Сформировать динамический массив X размером MxN из случайных целых чисел. В программе организовать функцию для подсчета среднего арифметического ненулевых элементов массива X, которые принадлежат диапазону [-4;4].
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2011, 13:51     Использование указателей на функции
Посмотрите здесь:

Использование указателей C++
использование указателей C++
C++ Использование указателей в программах
C++ Использование указателей и функций
C++ Использование указателей в функциях
C++ использование указателей
Использование указателей C++
Код с использование указателей C++
Использование ссылок и указателей C++
использование указателей C++
Использование указателей на функции-члены внутри самого класса C++
Использование указателей C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HeM01
36 / 24 / 2
Регистрация: 05.01.2010
Сообщений: 37
25.04.2011, 16:28     Использование указателей на функции #2
1. Будем принимать указатель на функцию, в которой рассчитывается значение этой функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double f1(double x)
{
   return x*x*x-2.0;
}
 
void find_roots(double a, double b, double h, double (* func) (double))
{
   for (double x = a; x<=(b-h); x+=h)
   {
      if (func(a)*func(a+h)<0)
      {
          // На этом отрезке у нас есть корень. Уточняем его методом методом половинного деления.
      }
   }
}
 
...
find_roots(-2, 3, 0.5, f1);
...
Могут возникнуть проблемки с func(a), если это старый компилятор. Заменяем тогда на вызов вида: (*func)(a).
Или тут проблемки: find_roots(-2, 3, 0.5, f1). Заменяем на: find_roots(-2, 3, 0.5, (double (*) (double))f1)
Yandex
Объявления
25.04.2011, 16:28     Использование указателей на функции
Ответ Создать тему
Опции темы

Текущее время: 06:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru