Реферат Курсовая Конспект
Указатель на функцию - раздел Информатика, Лекция 4. Указатель На Функцию. Указатель На Функцию Содерж...
|
Лекция 4.
Указатель на функцию.
Указатель на функцию содержит адрес оперативной памяти, по которому располагается исполняемый код функции, т.е. адрес, по которому передаётся управление при вызове функции. Указатель на функцию используется:
· для косвенного вызова функции (т.е. не через её имя, а через обращение к переменной, хранящей её адрес);
· для передачи имени функции в другую функцию.
Указатель функции имеет тип “указатель функции, возвращающей значение заданного типа и имеющей аргументы заданных типов”. Эта информация задаётся при описании указателя функции:
Тип (* имя_указателя) (список типов аргументов);
где
Тип - тип рез-та функции;
имя_указателя – имя указателя функции;
в списке типов аргументов перечисляются типы через запятую.
Пример: int (*pf) (double, double);-
задаёт указатель с именем pf на функцию, возвращающую значение типа int и имеющую два аргумента типа double.
Если есть функция с такими характеристиками, например:
int f (double a, double b) { /* тело функции*/ }
можно указателю pf присвоить имя функции pf=f; или pf=&f;
После этого можно вызвать функцию f()
как через имя функции: cout<<f (3.2, 2.5);
так и через указатель: cout<<pf (3.2, 2.5);
или cout<<(*pf) (3.2, 2.5);
Часто, чтобы сделать программу легко читаемой используют переименование типов ( программист даёт новое имя типу).
typedef тип новое_имя [размер];
//в [] необязательная часть.
Можно описать тип указателя на функцию с заданным типом результата и заданными типами параметров.
typedef тип_результата (*тип-указателя) (список типов параметров) ;
Можно описать, например, тип TF как тип указателя на функцию с двумя параметрами типа double и результатом типа int:
typedef int (*TF) (double, double);
Если определён тип указателя на функцию, его можно использовать:
· определить переменную этого типа; например:
TF qf;
Этой переменной можно присвоить значение qf=f; либо qf=&f;
и обращаться к этой функции через указатель qf.
· этот тип указателя можно использовать для описания параметра функции, т.е. в некоторую функцию можно передать как параметр другую функцию, описав этот параметр с типом указателя, например:
void NN (int a, int b, TF w)
{double x, y;……int z= w (x, y);…}
Рассмотрим некоторые примеры функций, в которые передаются имена других функций.
Некоторые итерационные методы решения уравнений f(x)=0
Корнем уравнения f(x) =0 называют такое значение x=ξ, что f (ξ)=0.
I этап. Отделение корней: Найти такой отрезок [α,β], на котором определены и непрерывны функции f(x), f’(x), f’’(x) и лежит один и только один корень уравнения. Достаточные условия этого:
· f(α)* f(β)<0;
· f’(x) на [α,β] сохраняет знак.
II этап.Уточнение корня. Найти приближённое значение корня с заданной точностью ε.
Некоторые методы уточнения корня:
I. Метод деления отрезка пополам.
1. t= f(α); значение функции на левом конце отрезка.
2. xc=( α+β)/2; середина отрезка [α,β].
3. Пока |α - β|>= ε выполнять
{r =f (xc); значение функции в средней точке.
Если (r * t>0) //r и t одного знака
то α=xc; выбираем правую половину отрезка
иначе β=xc; выбираем левую половину отрезка
xc=( α+β)/2; новая середина отрезка [α,β].
}
4. т.к. |α - β|< ε, то середина xc- корень с точностью ε.
– Конец работы –
Используемые теги: Указатель, функцию0.053
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Указатель на функцию
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов