Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник + Лабораторные работы С++.pdf
Скачиваний:
105
Добавлен:
12.04.2015
Размер:
767.41 Кб
Скачать

8.3.Перегрузка функций и указатель на функцию

ВС++ допустимо использование нескольких функций с одинаковым именем, но различным числом или типами параметров. Такое свойство называется перегрузкой функций. Перегруженные функции различаются компилятором по типам и числу параметров.

Так как имя функции является указателем на начало функции в оперативной памяти, то можно объявлять указатели на функции для последующего их использования в программе.

При объявлении указатель должен возвращать тот же тип и иметь такие же аргументы, как и функция, на которую он будет указывать. Например, указатель на функцию

double y(double x, int n);

будет иметь вид:

double (*fun)(double, int);

8.4. Пример выполнения работы

Условие. Вывести на экран таблицу значений функции Y(x) = sin x и ее

разложения в ряд S(x) = x

x3

+... +(1)

n

x2n+1

 

с точностью ε = 0.001. Вывес-

3!

 

(2n +1)!

 

 

 

 

ти число итераций, необходимое для достижения заданной точности.

#include <iostream.h>

#include <math.h>

#include <iomanip.h>

typedef double (*uf)(double, double, int &);

void tabl(double, double, double, double, uf); double y(double, double, int &);

double s(double, double, int &);

int main()

{

cout << setw(8) <<"x"<< setw(15) <<"y(x)"<< setw(10) << "k" << endl; tabl(0.1,0.8,0.1,0.001,y);

cout << endl;

cout << setw(8) <<"x"<< setw(15) <<"s(x)"<< setw(10) << "k" <<endl ; tabl(0.1,0.8,0.1,0.001,s);

return 0;

}

void tabl(double a, double b, double h, double eps, uf fun)

{

int k=0;

33