Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР Молодцов.doc
Скачиваний:
1
Добавлен:
21.09.2019
Размер:
126.98 Кб
Скачать

Задача 9(№197)

/*

Задача №197

Постановка задачи

Напишите класс Integral, включающий указатель на функцию. для вычисления некоторой математической функции и границы отрезка ее области определения. Предусмотрите в классе функцию-оператор для вычисления значения интеграла на заданном отрезке.

Алгоритм программы

Мы задаем функцию, а программа подсчитывает её определённый интеграл и выдаёт результат

Текс программы

Файл INTEGRAL.H

#ifndef UnIntegralH //Страж включения

#define UnIntegralH //Страж включения

#include<math.h>

class Integral

{ double (*f)(double);

double a,b;

public: //Открытые члены класса

Integral (double(*fi)(double),double ai,double bi) //Инициализация подинтегральной функции и границ интегрирования

{f=fi;a=ai;b=bi;}

double operator!(); //Функция подсчёта интеграла

}; #endif

Файл INTEGRAL.CPP

#include"UnIntegral.h"

#include<iostream.h>

#include<conio.h>

double bb,aa;

const int N=100;

double Integral::operator!() //Перегрузка оператора для вычисления интеграла

{

double sum=0, x=a, dx=(b-a)/(N-1);

for(int i=0;i<N-1;i++){

sum+=f(x)*dx;

x+=dx;

}

return sum; //Возвращение подсчитанного интеграла

}

void main()

{

double aa,bb;

double(*ff)(double);

Integral fun(sin,0,M_PI);

double funn=fun.operator!();

cout<<funn;

getch();

}

Пример работы программы

Интеграл от sin от –M_PI до M_PI =2

Список используемой литературы.

1. Тарасов В.Л. Программирование на С++

Н. Новгород: Издательство ННГУ,2006.

18