Язык С++ и программирование на нем. Рейзлин В.И. - 64 стр.

UptoLike

Составители: 

66
cout<<”\n Выполняется f2().”;}
void main(){
void (*ptr)(void);
ptr = f2;
(*ptr)(); //вызов функции f2();
ptr = f1;
(*ptr)(); //вызов f1();
ptr(); //альтернативная запись!
}
Результат:
Выполняется f2().
Выполняется f1().
Выполняется f1().
Иногда удобно использовать формальные параметры функции,
являющиеся указателями на функции.
Проиллюстрируем это при решении следующей задачи.
Вычислить интеграл, используя метод трапеций, от двух разных
функций.
// Файл TRAP.CPP
double trap(double a, double b, int n, double (*func)(double)){
double x, h = (b-a)/n, i = ((*func) (a) + (*func) (b))/2;
for (x = a; n >1; n – –) i + = (*func)(( x+=h );
return h*i; }
//Файл INTEGRAL.CPP
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include “trap.cpp“
double f1(double x){
return x*x+sin(3+x);}
double f2(double x){
return x/(x*x+1)+exp(-2*x*x);}
void main( ){
double a=1, b=3;
double i = trap(a, b, 50, f1);