vb中判断三角形形状

haolly 2010-12-01 07:15:42
输入三角形三边a,b,c的值,根据数值判断是否能组成三角形,是什么样的三角形,等边,等腰,直三角形,或者是任意三角形?
还想问一下,判断几个数中最大最小的函数是哪个,怎么用?
谢谢!我是新手。
...全文
549 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiagirl 2010-12-02
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim arr As New ArrayList
Dim max As Integer
arr.Add(CInt(TextBox1.Text))
arr.Add(CInt(TextBox2.Text))
arr.Add(CInt(TextBox3.Text))

'排序(从小到大)
arr.Sort()
'最大值
max = arr(arr.Count - 1)

MsgBox(max)
End Sub
threenewbee 2010-12-02
  • 打赏
  • 举报
回复
排序:
Dim newArray = From SelVal In ArraySource OrderBy SelVal Select SelVal


至于排序的实现。如果书上你看不懂,我在这里写也是白写,你还是用现成的算了。不过冒泡排序应该是最容易理解的排序了。
threenewbee 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 haolly 的回复:]
引用 1 楼 caozhy 的回复:
最大边<另外两边之和可以组成三角形。
直角:最大边^2=其余两边平方的和。
等边:三边相等。
等腰:两边相等。

求最大数:
function getmax(byref a() as integer) as integer
dim i as integer, max as integer
max = a(0)
for i = 1 to ub……
[/Quote]
无论是byref还是byval,都应该显式书写。
为什么没有中间大的。因为你没有问,而且这里用不到。如果你需要找第二大的,第三大的,那么排序下好了。
兔子-顾问 2010-12-01
  • 打赏
  • 举报
回复
这里可以写byval。
Tosp2012 2010-12-01
  • 打赏
  • 举报
回复
还有什么不懂的地方?
haolly 2010-12-01
  • 打赏
  • 举报
回复
没人给个代码,具体例子?
Tosp2012 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 haolly 的回复:]
引用 1 楼 caozhy 的回复:
[/Quote]

为什么要用byref呢?用byval也可以呀,我试过了。这两个有什么区别吗?
还有,谢谢2楼的回答,但你们都没有告诉我怎么判断哪个是中间大的,例如四个数中第二个大的。
是不是比较大小一定要放在数组中才能进行?
如果可能的话,还请介绍一下在数组中排序的方法(我听说过有个冒泡法,但看不懂书上的)。

1,byref是地址传递,ByVal是值传递。
2,所谓的冒泡法,就是通过每个值之间的比较,最后形成一个由大到小的排序过程。
haolly 2010-12-01
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim arr(2) As Integer
dim max as integer
arr(0) = CInt(TextBox1.Text)
arr(1) = CInt(TextBox2.Text)
arr(2) = CInt(TextBox3.Text)
max = getmax(arr)

End Sub
你知道了最大的边,但你怎么知道其他的两边到底是arr(0),arr(1),arr(2)中那个呢?







haolly 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
最大边<另外两边之和可以组成三角形。
直角:最大边^2=其余两边平方的和。
等边:三边相等。
等腰:两边相等。

求最大数:
function getmax(byref a() as integer) as integer
dim i as integer, max as integer
max = a(0)
for i = 1 to ubound(a)
if ……
[/Quote]
为什么要用byref呢?用byval也可以呀,我试过了。这两个有什么区别吗?
还有,谢谢2楼的回答,但你们都没有告诉我怎么判断哪个是中间大的,例如四个数中第二个大的。
是不是比较大小一定要放在数组中才能进行?
如果可能的话,还请介绍一下在数组中排序的方法(我听说过有个冒泡法,但看不懂书上的)。
threenewbee 2010-12-01
  • 打赏
  • 举报
回复
VB.NET可以使用LINQ

Dim theMax = (From SelVal In ArraySource Select SelVal).Max()
wuyq11 2010-12-01
  • 打赏
  • 举报
回复
最大边<另外两边之和可以组成三角形
等边三边相等
等腰两边相等
Dim max As Integer = 0
For Each i As Integer In arr
If i > max Then
max = i
End If
Next
threenewbee 2010-12-01
  • 打赏
  • 举报
回复
最大边<另外两边之和可以组成三角形。
直角:最大边^2=其余两边平方的和。
等边:三边相等。
等腰:两边相等。

求最大数:
function getmax(byref a() as integer) as integer
dim i as integer, max as integer
max = a(0)
for i = 1 to ubound(a)
if max < a(i) max = a(i)
next
getmax = max
end function

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧