求大神帮忙编个小程序!小弟在这先谢谢了(某三角形问题)

时间:2022-01-20 14:15:08
新建一窗体,在窗体上画一个名为Text1的的文本框和一个名Commend1的命令按钮,单击该命令按钮,随机产生三个100—300之间的整数,判断这三个整数是否能构成三角形,如不能,重新产生三个100—300之间的整数,直至三个数可以直接构成三角形,然后求出三角形的面积,并在文本框中输出三角形的面积(保留两位有效数字),同时在窗体上画出这个三角形。

10 个解决方案

#1


如何判断3个整数是否能构成三角形?

#2


引用 1 楼 dsd999 的回复:
如何判断3个整数是否能构成三角形?

呵呵。。。楼主说的三个整数可能是指这三个整数对应的线段能不能组成三角形吧。。

#3


引用 2 楼 lsftest 的回复:
Quote: 引用 1 楼 dsd999 的回复:

如何判断3个整数是否能构成三角形?

呵呵。。。楼主说的三个整数可能是指这三个整数对应的线段能不能组成三角形吧。。

我明白楼主的意思,但3个整数能否构成三角形早就忘了。

如100,200,300这三个数能吗?

#4


三个整数...

三个坐标还差不多, 三个整数能干啥?

#5


引用 4 楼 WallesCai 的回复:
三个整数...

三个坐标还差不多, 三个整数能干啥?


三个整数是三角形三条边的长度就有可能构成三角形了哇  求大神帮忙编个小程序!小弟在这先谢谢了(某三角形问题)

#6


引用 5 楼 CityBird 的回复:
Quote: 引用 4 楼 WallesCai 的回复:

三个整数...

三个坐标还差不多, 三个整数能干啥?


三个整数是三角形三条边的长度就有可能构成三角形了哇  求大神帮忙编个小程序!小弟在这先谢谢了(某三角形问题)


如果是三条边长的话, 只要最大的数小于其余两个数字之和即可构成三角形. 然后直接套海伦公式就可以得出面积. 
初中数学知识. 

#7


貌似:
If (a + b > c) Or (b + c > a) Or (c + a > b) Then
    s = ( ((a + b + c) * (a + b - c) * (b + c - a) * (c + a -b)) ^ 1/2) / 4
End If 

三角形两边和大于第三边。

#8


晕。。。。
三角形任意两边之和必须大于第三边。。。
三角形任意两边之差必须小于第三边。。。

#9


换个意思说,就是随机产生3个整数,然后判断能不能构成三角形,如能,就计算三角形的面积,用海伦公式:
设P=(a+b+c)/2 则:面积S=(p(p-a)(p-b)(p-c))^0.5,a,b,c为三角形三边长度.如何判断能否构成三角形呢?用a+b>c 且a-b<c就行了
然后就可以画图了,应为对图形没要求,所以只需要画出任何一个三边边长为a,b,c的三角形就行了

#10


Private Sub Command1_Click()
Dim t
Randomize
Do
t = Split(Int(100 + Rnd * 200) & " " & Int(100 + Rnd * 200) & " " & Int(100 + Rnd * 200))
Me.Caption = Join(t, ",")
Loop Until area(Val(t(0)), Val(t(1)), Val(t(2))) = True
End Sub

Private Sub Form_Load()
Me.Scale (-100, 400)-(400, -100)
End Sub
Function area(a, b, c) As Boolean
If (a + b > c) And (b + c > a) And (c + a > b) Then
area = True
Text1.Text = (((a + b + c) * (a + b - c) * (b + c - a) * (c + a - b)) ^ 1 / 2) / 4
Dim cosb As Single
cosb = (a ^ 2 + c ^ 2 - b ^ 2) / (2 * a * c)
Me.Cls
Me.Line (0, 0)-(b, 0), vbRed
Me.Line (0, 0)-(a * cosb, a * Sqr(1 - cosb ^ 2)), vbRed
Me.Line (b, 0)-(a * cosb, a * Sqr(1 - cosb ^ 2)), vbRed
End If
End Function

#1


如何判断3个整数是否能构成三角形?

#2


引用 1 楼 dsd999 的回复:
如何判断3个整数是否能构成三角形?

呵呵。。。楼主说的三个整数可能是指这三个整数对应的线段能不能组成三角形吧。。

#3


引用 2 楼 lsftest 的回复:
Quote: 引用 1 楼 dsd999 的回复:

如何判断3个整数是否能构成三角形?

呵呵。。。楼主说的三个整数可能是指这三个整数对应的线段能不能组成三角形吧。。

我明白楼主的意思,但3个整数能否构成三角形早就忘了。

如100,200,300这三个数能吗?

#4


三个整数...

三个坐标还差不多, 三个整数能干啥?

#5


引用 4 楼 WallesCai 的回复:
三个整数...

三个坐标还差不多, 三个整数能干啥?


三个整数是三角形三条边的长度就有可能构成三角形了哇  求大神帮忙编个小程序!小弟在这先谢谢了(某三角形问题)

#6


引用 5 楼 CityBird 的回复:
Quote: 引用 4 楼 WallesCai 的回复:

三个整数...

三个坐标还差不多, 三个整数能干啥?


三个整数是三角形三条边的长度就有可能构成三角形了哇  求大神帮忙编个小程序!小弟在这先谢谢了(某三角形问题)


如果是三条边长的话, 只要最大的数小于其余两个数字之和即可构成三角形. 然后直接套海伦公式就可以得出面积. 
初中数学知识. 

#7


貌似:
If (a + b > c) Or (b + c > a) Or (c + a > b) Then
    s = ( ((a + b + c) * (a + b - c) * (b + c - a) * (c + a -b)) ^ 1/2) / 4
End If 

三角形两边和大于第三边。

#8


晕。。。。
三角形任意两边之和必须大于第三边。。。
三角形任意两边之差必须小于第三边。。。

#9


换个意思说,就是随机产生3个整数,然后判断能不能构成三角形,如能,就计算三角形的面积,用海伦公式:
设P=(a+b+c)/2 则:面积S=(p(p-a)(p-b)(p-c))^0.5,a,b,c为三角形三边长度.如何判断能否构成三角形呢?用a+b>c 且a-b<c就行了
然后就可以画图了,应为对图形没要求,所以只需要画出任何一个三边边长为a,b,c的三角形就行了

#10


Private Sub Command1_Click()
Dim t
Randomize
Do
t = Split(Int(100 + Rnd * 200) & " " & Int(100 + Rnd * 200) & " " & Int(100 + Rnd * 200))
Me.Caption = Join(t, ",")
Loop Until area(Val(t(0)), Val(t(1)), Val(t(2))) = True
End Sub

Private Sub Form_Load()
Me.Scale (-100, 400)-(400, -100)
End Sub
Function area(a, b, c) As Boolean
If (a + b > c) And (b + c > a) And (c + a > b) Then
area = True
Text1.Text = (((a + b + c) * (a + b - c) * (b + c - a) * (c + a - b)) ^ 1 / 2) / 4
Dim cosb As Single
cosb = (a ^ 2 + c ^ 2 - b ^ 2) / (2 * a * c)
Me.Cls
Me.Line (0, 0)-(b, 0), vbRed
Me.Line (0, 0)-(a * cosb, a * Sqr(1 - cosb ^ 2)), vbRed
Me.Line (b, 0)-(a * cosb, a * Sqr(1 - cosb ^ 2)), vbRed
End If
End Function