VB上机调试题及答案(4)

2019-03-28 08:31

b = temp End Sub

程序调试28

Public Sub PrintArray()

'下面程序用于显示5行5列的数字方阵 '使两对角线上元素均为1,其余均为2

'要求显示的数字方阵两列数字之间空3格,两行之间空一行 '只要修改标出出错位置的下面那一条语句 Dim a(5, 5) As Integer

Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5

'******** 错误1 ********* If i <> j Or i <> 6 - j Then a(i, j) = 2 Else

a(i, j) = 1 End If

'******** 错误2 *********

Form1.Print a(i, j) + Space(3); Next j

'******* 错误3 ******* Form1.Print: Form1.Cls Next i End Sub

程序调试029

'PrintArray过程是输出一个右上三角元素(含对角线)为1,其余元素为0 的5×5矩阵 Public Sub PrintArray()

Dim a(1 To 5, 1 To 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5

If ----- 1 ----- Then ----- 2 ----- End If Next j Next i

For i = 1 To 5 For j = 1 To 5

Form1.Print \ Next j

------ 3 ----- Next i End Sub

43

六、Sub过程

程序调试30

Private Const n = 10

Private a(1 To n) As Integer

'TJ过程是将一批数据中小于零的数及它们的积打印出来

'数据由SCSJ过程产生,数据的取值范围为-10 ~ 10 之间的随机整数数 Public Sub TJ()

Dim i As Integer Dim t As Single

t= -------- 1 -------- For i = 1 To 10

If -------- 2 -------- Then t = t * a(i) End If Next i

Form1.Print \End Sub

Public Sub SCSJ() Randomize

Form1.Print \原始数据\ Dim i As Integer Dim j As Integer For i = 1 To n

'随机产生0或1,为0时取负,为1时取正 j = Int(Rnd * 2)

If ------ 3 ----- Then J = -1 a(i) = j * Int(Rnd * (n + 1)) Form1.Print a(i); Next i

Form1.Print End Sub

程序调试31

Dim a(30) As Integer Public Sub FindMax()

'该过程是用于查找一批数据中的最大数,并输出最大数的值及最大数在数组中的下标值。 Dim Position As Integer '最大数在数组中的下标 Dim max As Integer '最大数 Dim i As Integer GenerateData max = ----1----

Position = ----2---- For i = 2 To 30

If a(i) > max Then

44

max = ----3----

Position = ----4---- End If Next i

Form1.Print \最大值=\

Form1.Print \最大值的下标=\End Sub

Public Sub GenerateData() Dim i As Integer For i = 1 To 30

a(i) = Int(500 * Rnd() + 1) Form1.Print a(i),

If i Mod 5 = 0 Then Form1.Print Next i End Sub

程序调试32

Dim a(1 To 5, 1 To 4) As Integer Dim ave(1 To 5) As Integer Public Sub MaxLine()

'该过程用于查找一个5行4列的二维数组中行平均值最大的行,并将该行所有数据调整到第一行的位置。

Dim i As Integer, j As Integer, temp As Integer Dim Line_no As Integer '最大平均值的行号 '找出最大平均值所在行 Line_no = 1 For i = 2 To 5

'****** 错误1 *******

If ave(Line_no) >= ave(i) Then '****** 错误2 ******* Line_no = ave(i) End If Next i

'交换第一行与最大平均值所在行 For j = 1 To 4 temp = a(1, j)

'****** 错误3 ****** a(Line_no, j) = a(1, j) a(Line_no, j) = temp Next j

'交换对应行的平均值 temp = ave(1)

ave(1) = ave(Line_no) ave(Line_no) = temp '打印交换后的数据

Form1.Print \交换后的数据和平均值\

45

PrintArray End Sub

Public Sub DataProduce()

'该过程用于产生原始数据。 Dim i As Integer Dim j As Integer '产生5*4数组 For i = 1 To 5 For j = 1 To 4

a(i, j) = Int(100 * Rnd) Next j Next i End Sub

Public Sub Average()

'该过程用于计算各行的平均值。 Dim i As Integer Dim j As Integer Dim sum As Integer '计算各行平均值 For i = 1 To 5 sum = 0 For j = 1 To 4

'****** 错误4 ****** sum = a(i, j) Next j

ave(i) = sum / 4 Next i

'将数组和平均值打印出来

Form1.Print \原始数据和平均值\ PrintArray End Sub

Public Sub PrintArray()

'该过程用于打印二维数组和行平均值。 Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 4

Form1.Print a(i, j); Spc(3); Next j

Form1.Print \平均值=\ Next i End Sub

程序调试33

Public Sub SortData()

'该过程是产生10个[30,50]的随机整数,并按从小到大的顺序打印出来。

46

Dim a(10) As Integer

Dim i As Integer, j As Integer For i = 1 To 10

a(i) = Int(Rnd * 21 + 30) Next i

For i = 1 To 9

-------- 1 --------- If a(i) > a(j) Then

--------- 2 ---------- End If Next j

Form1.Print a(i) Next i

Form1.print --------- 3 -------- End Sub

Public Sub Swap(a As Integer, b As Integer) '该过程是用于交换两个变量的值。 Dim temp As Integer temp = a a = b b = temp End Sub

程序调试34

Private Const n = 10

Private a(1 To n) As Integer 'BubbleSort过程是冒泡排序 'Swap过程交换两个变量数值

'GenerateData过程产生10个[1,20]之间互不相同的随机整数 Public Sub BubbleSort()

Dim i As Integer, j As Integer i = 1 Do

For j = i + 1 To n

If a(j) > a(i) Then

'*******错误1 ********* Swap (a(j), a(i)) End If Next j i = i + 1

'*******错误2 ******* Loop While i = n

Form1.Print \排序结果\ For i = 1 To n

Form1.Print a(i); Next i

47


VB上机调试题及答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Informix数据库培训教材(上)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: