未转变者3.0id整合:急救!!!有关海伦公式!!多谢各位大虾!

来源:百度文库 编辑:神马品牌网 时间:2024/04/19 13:31:44
输入a,b,c三边长后,判断是否能构成三角形,如果能构成三角形,就用海伦公式求三角形的面积,并在显示器上显示该面积。
用汇编语言编写的(MASM)

海伦公式的几种另证及其推广

关于三角形的面积计算公式在解题中主要应用的有:
设△ABC中,a、b、c分别为角A、B、C的对边,ha为a边上的高,R、r分别为△ABC外接圆、内切圆的半径,p = (a+b+c),则
S△ABC = aha= ab×sinC = r p
= 2R2sinAsinBsinC =
=
其中,S△ABC = 就是著名的海伦公式,在希腊数学家海伦的著作《测地术》中有记载。
海伦公式在解题中有十分重要的应用。
一、 海伦公式的变形
S=
= ①
= ②
= ③
= ④
= ⑤
二、 海伦公式的证明
证一 勾股定理
分析:先从三角形最基本的计算公式S△ABC = aha入手,运用勾股定理推导出海伦公式。
证明:如图ha⊥BC,根据勾股定理,得:

x = y =
ha = = =
∴ S△ABC = aha= a× =
此时S△ABC为变形④,故得证。
证二:斯氏定理
分析:在证一的基础上运用斯氏定理直接求出ha。
斯氏定理:△ABC边BC上任取一点D,
若BD=u,DC=v,AD=t.则
t 2 =
证明:由证一可知,u = v =
∴ ha 2 = t 2 = -
∴ S△ABC = aha = a ×
=
此时为S△ABC的变形⑤,故得证。
证三:余弦定理
分析:由变形② S = 可知,运用余弦定理 c2 = a2 + b2 -2abcosC 对其进行证明。
证明:要证明S =
则要证S =
=
= ab×sinC
此时S = ab×sinC为三角形计算公式,故得证。
证四:恒等式
分析:考虑运用S△ABC =r p,因为有三角形内接圆半径出现,可考虑应用三角函数的恒等式。
恒等式:若∠A+∠B+∠C =180○那么
tg · tg + tg · tg + tg · tg = 1
证明:如图,tg = ①
tg = ②
tg = ③
根据恒等式,得:
+ + =
①②③代入,得:
∴r2(x+y+z) = xyz ④
如图可知:a+b-c = (x+z)+(x+y)-(z+y) = 2x
∴x = 同理:y = z =
代入 ④,得: r 2 · =
两边同乘以 ,得:
r 2 · =
两边开方,得: r · =
左边r · = r·p= S△ABC 右边为海伦公式变形①,故得证。
证五:半角定理
半角定理:tg =
tg =
tg =
证明:根据tg = = ∴r = × y ①
同理r = × z ② r = × x ③
①×②×③,得: r3 = ×xyz
回答者: 流穿蜂 - 高级经理 七级 11-1 15:22

什么语言啊,没有说明,那就给出一个类 C 语言的逻辑框架:

#include <stdlib.h>
#include <math.h>

void main()
{
double a,b,c,p,s;

s = 0.00;

scanf(....) //输入a、b、c,函数格式忘记了,嘻嘻

if( (a > 0.00)&&(b > 0.00)&&(c > 0.00) ) //输入不能为负数,否则无显示结果 s = 0.000;
{
if( (a + b > c)&&(b + c > a)&&(c + a) > b ) //三角形成立条件
{
p = (a + b + c)/2.00;
s = sqrt( p*(p - a)*(p - b)*(p - c)); //海伦公式

}
}

printf("%9.3f",s); //显示小数点后三位,总字符长度为9位

}

你这是C语言编程吧。
先用IF
ELSE写判断
再用上边说的公式求一下就完了
sqrt(s*(s-a)*(s-b)*(s-c))
s=(a+b+c)/2

计算三角形面积的
sqrt(s*(s-a)*(s-b)*(s-c))
s=(a+b+c)/2

ab/2