计算三角形面积

三角形是由同一平面内的三条线段首尾顺次相接所组成的封闭图形。

但不是任意长度的三边都可以构成三角形,构成三角形的三边必须满足条件:任意两边之和大于第三边假设三角形的三边的长度分别是a,b,c,构成三角形的条件就是:a+b>c 且 a+c>b 且b+c>a

1.背景知识

当三边的长度可以构成三角形的时候,可以用海伦公式计算三角形的面积S:

计算三角形面积

其中,p为三角形的半周长(周长的一半):

计算三角形面积

海伦,古希腊数学家、力学家、机械学家,生平不详。约公元62年活跃于亚历山大,在那里教过数学、物理学等课程。他多才多艺,善于博采众长,在论证中大胆使用某些经验性的近似公式,注重数学的实际应用。海伦有许多学术著作,都用希腊文撰写,但大部分已失传。主要著作是《量度论》一书,该书共3卷,分别论述平面图形的面积,立体图形的体积和将图形分成比例的问题.其中卷I第8题给出著名的已知三边长求三角形面积的海伦公式

今天用Python计算任意三角形面积:请用户输入三角形的三边长度,计算三角形面积。

2.解题思路

我们主要可以分为四步,所以又称为四步法。

第一步: 用input函数请用户输入三条边的长度

第二步: 验证三角形是否成立

第三步: 用海伦公式计算面积

第四步: 输出结果

3.方法

a = float(input("输入三角形的第一条边长:"))
b = float(input("输入三角形的第二条边长:"))
c = float(input("输入三角形的第三条边长:"))

if a + b > c and a + c > b and b + c > a:
p = (a + b + c) / 2
s = pow(p * (p - a) * (p - b) * (p - c), 0.5)

print(f"三角形的面积是{s: 0.2f}")

else:
print("不能构成三角形,请重新输入!")

第1-3行: 分别定义变量a, b, c,input函数使用户输入三条边长,再用float函数将输入的字符串转换为浮点数

第5行: 用if...else语句判断用户输入的三条边是否可以构成三角形。若可以构成三角形,继续执行后续的代码;若不能构成三角形,则转到第11行,用print函数打印“不能构成三角形,请重新输入!”

第6行: 将三角形的半周长赋值给变量p

第7行: 根据海伦公式,用pow函数计算三角形的面积,并赋值给变量s

pow是power的缩写,power就是我们讲的“幂”pow(x,y) 返回 x 的 y 次方的值,如pow(2,3)返回的是2的3次方,即2**3;亦可称为2的3次幂

第9行: 用print函数打印三角形的面积,0.2f是小数点的位数,本题保留两位小数

这就是用程序来实现构建三角形,计算三角形的面积的一种方法。

还有一种方法是可以通过代码进行判断,看是否可以构成三角形。

具体代码如下:

#计算三角形面积
while(True):
triangle = input('输入三角形三边(如10,6,8):')
sides = [int(side) for side in triangle.split(',')]
a,b,c = sides

#判断输入的三角形是否合法
if a + b > c and a + c > b and b + c > a :
s = a * b * (1-((a**2 + b**2 - c**2)/(2*a*b))**2) ** 0.5/2
print('三角形({0[0]},{0[1]},{0[2]})的面积是:{1}'.format(sides,s))
break
else:
print('三角形不合法')
发表评论

相关文章