求曲线和直线围成的面积
求表达式,求积分
1 #include <iostream> 2 using namespace std; 3 double x[4],y[4]; 4 int t; 5 double k,m;//fx1: y=kx+m 6 double a,b,c;//fx2: y=a(x-b)^2+c 7 void getfx1() 8 { 9 k=(y[3]-y[2])/(x[3]-x[2]); 10 m=y[2]-k*x[2]; 11 } 12 void getfx2() 13 { 14 a=(y[2]-y[1])/(x[1]-x[2])/(x[1]-x[2]); 15 b=x[1]; 16 c=y[1]; 17 } 18 double getarea() 19 { 20 double f1=1.0/3*a*x[3]*x[3]*x[3]-(2*a*b+k)/2*x[3]*x[3]+(a*b*b+c-m)*x[3]; 21 double f2=1.0/3*a*x[2]*x[2]*x[2]-(2*a*b+k)/2*x[2]*x[2]+(a*b*b+c-m)*x[2]; 22 return f1-f2; 23 } 24 int main() 25 { 26 scanf("%d",&t); 27 while(t--) 28 { 29 for(int i=1;i<=3;i++) scanf("%lf%lf",&x[i],&y[i]); 30 getfx1(); 31 getfx2(); 32 printf("%.2lf\n",getarea()); 33 } 34 }
时间: 2024-10-05 22:19:23