发布时间 : 星期日 文章vb课后练习答案习题解答 (5)要点更新完毕开始阅读51082eaaf605cc1755270722192e453611665b7f
b(i, j) = a(i * j)
If j <= i Then Print b(i, j), Next j Print Next i
End Sub
答案:
1 2 4 3 6 9
4. Private Sub Command1_Click()
Dim a(1 To 5, 1 To 5) As Integer, i%, j% For i = 1 To 5 For j = 1 To 5
If i <= j Then a(i, j) = 1 Else a(i, j) = i - j + 1 Next j Next i
For i = 1 To 5 For j = 1 To 5
Print a(i, j);
Next j Print Next i
End Sub
答案:
1 2 3 4 5
1 1 2 3 4 1 1 1 2 3 1 1 1 1 2 1 1 1 1 1
5.5编程题
2.编一程序,使用随机函数产生10个互不相同的两位整数存放到一维数组中,并输出该数组,然后求这组数中的最大值及最大值在数组中的位置。
解答:
(1)界面设计和属性设置
在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3.5.2所示。 表3.5.2 属性设置
控件名称 Form1 属性名 Caption 属性值 求两两不相同随机数最大值及其位置 Command1 Caption 开始 Command2 Caption 结束 (2)程序代码 Private Sub Command1_Click() Cls
Dim a(1 To 10), i%, j%, max%, p% Randomize For i = 1 To 10
l: a(i) = Int((90 * Rnd + 10)) For j = 1 To i - 1
If a(i) = a(j) Then GoTo l Next j Next i Print: Print
Print Tab(15); \产生的随机数为:\ Print
For i = 1 To 10
Print \ If i Mod 4 = 0 Then Print Next i
max = a(1): p = 1
For i = 2 To 10
If a(i) > max Then max = a(i): p = i Next i Print: Print
Print Tab(15); \最大值为:\
Print Tab(10), \最大值所在数组元素的下标为:\End Sub
Private Sub Command2_Click() End End Sub
(3)运行情况
运行程序后,屏幕出现用户界面。单击标题为“开始”的命令按钮,系统执行相应的
Click事件过程。执行结果如图3.5.2所示。单击标题为“结束”的命令按钮,结束程序的执行。
图3.5.2 执行结果
4.给定两组已按升序排列好的整型数据,编写一个程序把它们合并为一组仍按升序排列的数据。
解答:
(1)界面设计和属性设置
在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3.5.4所示。 表3.5.4 属性设置
控件名称 Form1 属性名 Caption 属性值 把两个升序数组合并为一个升序数组 Command1 Command2 Caption Caption 合并 结束 (2)程序代码 Dim a As Variant, b As Variant, c%(0 To 11) Private Sub Form_Activate() Dim i%
a = Array(1, 2, 7, 8) Print: Print: Print
Print Tab(5); \第一个升序数组:\ For i = 0 To 3 Print a(i); Next i Print: Print
b = Array(3, 4, 8, 8, 9, 10, 12, 12) Print Tab(5); \第二个升序数组:\
For i = 0 To 7 Print b(i); Next i End Sub
Private Sub Command1_Click() Dim i%, j%, k% i = 0: j = 0: k = 0 While i < 4 And j < 8 If a(i) > b(j) Then
c(k) = b(j): k = k + 1: j = j + 1 '比较a和b中的元素,把较大的元素移到 Else 'c中,直到其中一个数组搬空为止 c(k) = a(i): k = k + 1: i = i + 1 End If Wend While i < 4
c(k) = a(i): i = i + 1: k = k + 1 '把a中剩余的元素搬到c中 Wend While j < 8
c(k) = b(j): j = j + 1: k = k + 1 '把b中剩余的元素搬到c中 Wend
Print: Print
Print Tab(5); \合并后的升序数组:\ Print Tab(8); For i = 0 To 11 Print c(i); Next i End Sub
Private Sub Command2_Click() End End Sub
(3)运行情况
运行程序后,系统执行Form_Activate事件过程,屏幕出现用户界面,并显示两个升序数