ex8_9.cpp
来自「C++程序设计课本源码,供学习计算机的大学生们参考」· C++ 代码 · 共 43 行
CPP
43 行
#include<iostream.h>
#include<math.h>
class Simpson{
double Intevalue,a,b;//Intevalue积分值,a积分下限,b积分上限
public:
virtual double fun(double x)=0;//被积函数声明为纯虚函数
Simpson(double ra=0,double rb=0){
a=ra;
b=rb;
Intevalue;
}
void Integrate(){
double dx;
int i;
dx=(b-a)/2000;
Intevalue=fun(a)+fun(b);
for(i=1;i<2000;i+=2)Intevalue+=4*fun(a+dx*i);
for(i=2;i<2000;i+=2)Intevalue+=2*fun(a+dx*i);
Intevalue*=dx/3;
}
void Print(){cout<<"积分值="<<Intevalue<<endl;}
};
class A:public Simpson{
public:
A(double ra,double rb):Simpson(ra,rb){};
double fun(double x){return sin(x);}
};
class B:public Simpson{
public:
B(double ra,double rb):Simpson(ra,rb){};
double fun(double x){return exp(x);}
};
void main(){
A a1(0.0,3.1415926535/2.0);
Simpson *s=&a1;
s->Integrate();//动态
B b1(0.0,1.0);
b1.Integrate();//静态
s->Print();
b1.Print();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?