python求三角形的面积
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python求三角形的面积相关的知识,希望对你有一定的参考价值。
参考技术Apython求三角形的面积如下:
方法一:普通面积公式法
import math
a=float(input("请输入三角形的边长a: "))
b=float(input("请输入三角形的边长b: "))
c=float(input("请输入三角形的边长c: "))
d=(a+b+c)/2
area=math.sqrt(d*(d-a)*(d-b)*(d-c));
print(str.format("三角形的三边分别是:a=0,b=1,c=2",a,b,c))
print(str.format("三角形的面积=0",area))
方法二:if循环法
while True:
a = float(input('输入三角形第一边长:'))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长:'))
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.2f' % s)
break
else:
print('三角形不合法')
方法三:海伦公式法
import math
a = float(input('依次输入边长:\\n'))
b = float(input())
c = float(input())
p = (a+b+c)/2
x = p*(p-a)*(p-b)*(p-c)
while x<=0 :
print('此三边不构成三角形,请重新输入')
a = float(input('依次输入边长:\\n'))
b = float(input())
c = float(input())
p = (a+b+c)/2
x = p*(p-a)*(p-b)*(p-c)
s = math.sqrt(x)
print('周长:' + str(2*p))
print('面积:' + str(s))
VB求三角形面积
给定三角形的3条边长,计算三角形的面积。编写程序,首先判断给出的3条边能否构成三角形,如可以构成,则计算并输出该三角形的面积,否则要求重新输入。当输入-1时介绍程序。
-------------------------------------------------------
请问高手是否可以通过弹出框来输入长度!!还有注意下最后句话啊!!
==============
Private Sub Form_Load()
Do
Dim a As Single, b As Single, c As Single, p As Single, s As Single
a = Val(InputBox("请输入三角形第1条边长"))
If a = -1 Then Exit Do
b = Val(InputBox("请输入三角形第2条边长"))
If b = -1 Then Exit Do
c = Val(InputBox("请输入三角形第3条边长"))
If c = -1 Then Exit Do
p = (a + b + c) / 2
If a >= p Or b >= p Or c >= p Then
MsgBox "不能构成三角形"
Else
s = Sqr(p * (p - a) * (p - b) * (p - c))
MsgBox "面积为" & s
End If
Loop
End
End Sub 参考技术A 1、海伦公式:p为三角形的周长的一半,而a,b,c分别为三角形三边的长度,
S=p(p-a)(p-b)(p-c)=[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]/2
2、已知底边和高,计算就简单了
3、已知两边和夹角,先求出第三边,再使用第一项计算
其他的类似。源程序如下:
Option
Explicit
Dim
A
As
Double,
B
As
Double,
C
As
Double
Dim
Ja
As
Double,
Jb
As
Double,
Jc
As
Double
Dim
S
As
Double
Private
Sub
Form_Load()
S
=
S1(3,
6,
8)
'已知三边,求面积
MsgBox
"三边:3、6、8,面积是"
&
S
S
=
S1(3,
6,
C1(3,
6,
30
*
3.142
/
180))
'已知两边和夹角,求面积
MsgBox
"两边及夹角:3、6、30,面积是"
&
S
S
=
S2(3,
6)
'已知底和高,求面积
MsgBox
"底和高:3、6,面积是"
&
S
End
Sub
Private
Function
C1(A
As
Double,
B
As
Double,
Jc
As
Double)
As
Double
C1
=
Sqr(A
*
A
+
B
*
B
-
2
*
A
*
B
*
Cos(Jc))
End
Function
Private
Function
S1(A
As
Double,
B
As
Double,
C
As
Double)
As
Double
S1
=
(A
+
B
+
C)
*
(A
+
B
-
C)
*
(A
+
C
-
B)
*
(B
+
C
-
A)
/
2
End
Function
Private
Function
S2(D
As
Double,
G
As
Double)
As
Double
S2
=
D
*
G
/
2
End
Function 参考技术B 设三边长分别为a,b,c。
a,b,c满足a+b>c,a+c>b,b+c>a即可为三角形。
求面积用海伦公式:
S=√[p(p-a)(p-b)(p-c)]
(p为三角形半周长,p=(a+b+c)/2 )
弹出框请使用InputBox语句。 参考技术C Private Sub btnInput_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInput.Click
Dim dbl1 As Double = CDbl(InputBox("请输入第一条边长度:", , CStr(0)))
Dim dbl2 As Double = CDbl(InputBox("请输入第二条边长度:", , CStr(0)))
Dim dbl3 As Double = CDbl(InputBox("请输入第三条边长度:", , CStr(0)))
If dbl1 = -1 OrElse dbl2 = -1 OrElse dbl3 = -1 Then Exit Sub
If dbl1 + dbl2 <= dbl3 OrElse dbl2 + dbl3 <= dbl1 OrElse dbl1 + dbl3 <= dbl2 Then
MsgBox("输入的三边长度无法组成一个三角形!")
Else
Dim MianJi As Double
Dim P As Double = (dbl1 + dbl2 + dbl3) / 2
MianJi = Math.Sqrt(P * (P - dbl1) * (P - dbl2) * (P - dbl3))
MsgBox(MianJi)
End If
End Sub
以上是 Visual Basic 2005 的代码。
以上是关于python求三角形的面积的主要内容,如果未能解决你的问题,请参考以下文章