阳光上的桥吧 关注:26贴子:260
  • 0回复贴,共1

我写的PASCAL程序:求三点坐标的三角形面积

只看楼主收藏回复

帖子地址:
http://zhidao.baidu.com/question/48836656.html

问题:
任意给定平面上三个点A(X1,Y1),B(X2,Y2),C(X3,Y3),试判断这三个点能否构成三角形,能则求出它的面积。

程序:
{$apptype console} 
program test; 
var x1,y1,x2,y2,x3,y3,a,b,c,s:real; 
begin 
write('依次输入x1,y1,x2,y2,x3,y3:'); 
readln(x1,y1,x2,y2,x3,y3); 
if y2<>y1 then a:=(x2-x1)/(y2-y1) else a:=y3-y1;{AB的斜率} 
if y3<>y1 then b:=(x3-x1)/(y3-y1) else b:=y2-y1;{AC的斜率} 
if (a=b)or {斜率相同} 
((x1=x2)and(y1=y2))or((x1=x3)and(y1=y3))or((x3=x2)and(y3=y2)){两点重合} 
then writeln('不能形成三角形。') 
else begin 
{两点之间的距离等于坐标差的平方之和再开方} 
a:=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));{AB之间的距离} 
b:=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));{AC之间的距离} 
c:=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));{BC之间的距离} 
writeln('三边长是:',a:1:5,';',b:1:5,';',c:1:5); 
{又设p=(a+b+c)/2,则面积S=根号下((p-a)(p-b)(p-c)p)} 
s:=(a+b+c)/2;{半周长} 
s:=sqrt(s*(s-a)*(s-b)*(s-c));{面积} 
writeln('三点围成三角形的面积是:',s:1:5); 
end; 
end. 



IP属地:重庆1楼2008-03-19 22:55回复