看大家快要被VB玩死了我来讲解几道VB的题
金院吧友吧
全部回复
仅看楼主
level 7
jch 楼主
看到吧里有太多人为VB发愁,就看了几道VB的题,并附上答案
事先声明我没学过VB只是刚刚从百度了下VB的语法,现场刚刚学的VB,所以也会太精,大家看看思路就好了
原帖在这:https://tieba.baidu.com/p/1505641215
在这个帖子里面我用C# 语法把所有题做了一遍,LZ说看不懂,所以现在再用真正的VB再写一遍
原贴问题:
1、当点击窗体空白处时,由键盘输入10个学生的成绩,并在窗体上输出高于平均分的成绩。
2、由键盘输入10个数,再逆序输出。
3、当点击窗体空白处时,随机生成一个3x3的矩阵,数值范围在1-99,并显示在窗体上。
4、当点击窗体空白处时,随机生成一个6x6的对角矩阵,即主对角线上的值为1,其它值为0,如图1。显示在图形框中。
2012年06月06日 12点06分 1
level 7
jch 楼主
第一道题的答案:
Dim num(10) As Integer
Dim sum As Integer
Dim var As Integer
Dim greater As String = "高于平均分的是:"
num(0) = 1
num(1) = 2
num(2) = 3
num(3) = 4
num(4) = 5
num(5) = 6
num(6) = 7
num(7) = 8
num(8) = 9
num(9) = 10
Dim i As Integer
For i = 0 To 9
sum += num(i)
Next
var = sum / num.Length
For i = 0 To 9
If (num(i) > var) Then
greater += num(i).ToString + "."
End If
Next
MsgBox(greater)
把这段代码放到一个按钮里面执行就行了,会输出 6.7.8.9.10
思路,先计算出这个是个数的总合,在计算平均值,再遍历数组,如果大于平均值则记录下来,最后输出
2012年06月06日 12点06分 2
level 7
jch 楼主
现在做第二道题,做一道发一道
因为遇到不会的语法还要现场百度,可能有点慢
2012年06月06日 12点06分 3
level 9
高手啊。膜拜中[Yeah]
2012年06月06日 12点06分 4
level 7
jch 楼主
第二题
Dim num(9) As Integer
Dim output As String = "倒序输出结果:"
num(0) = 1
num(1) = 2
num(2) = 3
num(3) = 4
num(4) = 5
num(5) = 6
num(6) = 7
num(7) = 8
num(8) = 9
num(9) = 10
Dim i As Integer
Dim tmp As Integer
For i = 0 To 4
tmp = num(i)
num(i) = num(9 - i)
num(9 - i) = tmp
Next
For i = 0 To 9
output += num(i).ToString() + "."
Next
MsgBox(output)
从第0个开始循环到中间一个
把第0个和最后一个调换,调换五次完成全部逆序
2012年06月06日 12点06分 5
level 12
[揉脸]
2012年06月06日 13点06分 6
level 7
jch 楼主
第三题:
Private Sub Form1_Click(sender As System.Object, e As System.EventArgs) Handles MyBase.Click
Dim num(8) As Integer
Dim output As String = ""
Randomize()
Dim i As Integer
For i = 0 To 8
num(i) = Int(Rnd() * 99)
Next
For i = 0 To 8
output += num(i).ToString() + Chr(9)
If ((i + 1) Mod 3 = 0) Then
output += Chr(13)
End If
Next
MsgBox(output)
End Sub
绑定窗体单击事件,准备数组
随机9次赋值到数组中,输出时每个数字之间加上 水平制表符Chr(9)
当个数i+1是3的倍数时加上换行符Chr(13)
输出即可

2012年06月06日 13点06分 7
level 7
jch 楼主
第四题:
Private Sub Form1_Click(sender As System.Object, e As System.EventArgs) Handles MyBase.Click
Dim n As Integer = 6
Dim output As String = ""
Dim y As Integer
For y = 1 To n Step 1
Dim x As Integer
For x = 1 To n Step 1
If (x = y Or x + y = n + 1) Then
output += "1"
Else
output += "0"
End If
Next
output += Chr(13)
Next
MsgBox(output)
End Sub
2012年06月06日 13点06分 8
1