vb初学者提问,怎么让软件识别出这是一个直角三角形并计算面积
vb吧
全部回复
仅看楼主
level 1
我想到要排列一下顺序,但是不知道为什么没法排大小,这样就导致我输入3,4,5的数据可以计算,但是输入3,5,4的数据就无法计算了
2020年12月05日 10点12分 1
level 1
Private Sub Command1_Click()
Dim x As Single, y As Single, z As Single, c, area As Single
Dim d As Integer
x = Val(Text1.Text)
y = Val(Text2.Text)
z = Val(Text3.Text)
If z > x And z > y Then
d = x And x = y And y = z And z = d
End If
If (x ^ 2 + y ^ 2 = z ^ 2) And (z ^ 2 - y ^ 2 = x ^ 2) And (z ^ 2 - x ^ 2 = y ^ 2) Then
c = (x + y + z) / 2
area = Sqr(c * (c - x) * (c - y) * (c - z))
MsgBox "直角三角形的面积是:" & Format(area, "###.00"), , "直角三角形面积"
Else
MsgBox "不能构成直角三角形", , "警告"
End IfEnd SubPrivate Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End SubPrivate Sub Command3_Click()
End
End Sub
2020年12月05日 10点12分 3
有没有大佬帮我看一下是不是代码哪里错误了
2020年12月05日 10点12分
level 5
直角边怎么可能比斜边长呢?你输入的时候是错的,做一个判断即可。
2020年12月05日 11点12分 4
level 13
你这d = x And x = y And y = z And z = d什么鬼,排序不是这样写的
Private Sub Command1_Click()
Dim x!, y!, z!, t!, Area!
x = Val(Text1)
y = Val(Text2)
z = Val(Text3)
'冒泡排序,从小到大:
If x > y Then t = x: x = y: y = t
If x > z Then t = x: x = z: z = t
If y > z Then t = y: y = z: z = t
'满足勾股定理即直角三角形
If x ^ 2 + y ^ 2 = z ^ 2 Then
Area = x * y / 2
MsgBox "直角三角形面积:" & Format(Area, "0.00")
Else
MsgBox "不能构成直角三角形!"
End If
End Sub
2020年12月05日 12点12分 5
感谢大佬解惑
2020年12月05日 14点12分
level 11
不会“没法排大小”,只会是你排序方法不对。
事实上,这里你没有必要排序,只需要找出最大值,将他放到最后就好了
2020年12月06日 00点12分 6
level 11
放屁脱裤子,那么多and好玩啊,用法也不对
2020年12月06日 01点12分 7
1