使用自定义积分函数的解决方法:
使用自定义积分函数利用矩形面积累加方法计算阴影面积的C++代码如下,供参考。阴影面积计算的结果是19.5039。
//Shadow.cpp 小学六年级数学题 计算阴影面积
#include <iostream>
#include <cmath>
using namespace std;
inline double LineFun(double x){ //直线方程
return x/2;
}
inline double ArcFun(double x){ //左边圆的曲线方程
return 5-sqrt(25-(x-5)*(x-5));
}
//左下角0-5的分段函数
double Fun(double x){
double y1 = LineFun(x);
double y2 = ArcFun(x);
return y1<y2 ? y1:y2; //对左下角不规则形状,不同的x值应该取小的y值
}
//积分函数
double Integrate(double (*f)(double),double step){ //第一个形参是函数指针
double sum=0;
for(double x=0;x<5;x+=step){ sum += step*f(x); //step*f(x)就是一个小长方形的面积
}
return sum;
}
int main(){
double LeftCorner = Integrate(Fun,0.0001);
const double PI=3.14159265;
double area=10*10-PI*5*5-LeftCorner;
cout<<"左下角面积:"<<LeftCorner;//1.95624
cout<<" 阴影面积:"<<area<<endl;//19.5039
return 0;
}
以上内容不是我写的,是老师给的实际上,有题解的时候我大概就懒地再调代码了,手动狗头