zrq495
www.zrq495.com

题意:给出三个点,求抛物线和直线所围成的面积。

设抛物线的方程为y=a(x-h)^2+k, 直线方程为y=dx+e; 所以h和k分别是顶点的横纵坐标,即h=x1,k=y1.

把(x2,y2)或(x3,y3)代入抛物线方程求出 a,代入直线方程求出d和e 。(见代码)

然后分别对它们积分,求出面积,相减即可。

代码如下:

 1 #include<iostream>
 2 #include<cstdio>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int T;
 9     double s1, s2;
10     double a, h, k, e, d;
11     double x1, y1, x2, y2, x3, y3;
12     cin >> T;
13     while(T--)
14     {
15         cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
16         h=x1;
17         k=y1;
18         a=(y2-k)*1.0/((x2-h)*(x2-h));
19         d=(y2-y3)*1.0/(x2-x3);
20         e=y2-d*x2;
21         s1=1.0/3*a*x2*x2*x2-a*h*x2*x2+a*h*h*x2+k*x2-1.0/2*d*x2*x2-e*x2;
22         s2=1.0/3*a*x3*x3*x3-a*h*x3*x3+a*h*h*x3+k*x3-1.0/2*d*x3*x3-e*x3;
23         printf("%.2lf\n", s2-s1);
24     }
25     return 0;
26 }
posted on 2012-08-04 21:11  zrq495  阅读(163)  评论(0编辑  收藏  举报