'交换第一行与最大平均值所在行 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 \交换后的数据和平均值\ 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
10.已有一模块文件Modify.Bas。该模块中的 Wrap 过程用于判断一个字符串是否“回文”。所谓“回文”是指字符串顺读与倒读都是一样的,如“潮起潮落,落潮起潮”。 程序如下: Public Sub Wrap() Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer
str1 = InputBox(\请输入任意的字符串\输入任意字符串 '****错误1***** length = Val(str1) k = 1 Do
'****错误2*****
strleft = Left(str1, k) '从左边起逐个取出一个字符 '****错误3*****
strright = Right(str1, k) '从右边起逐个取出一个字符 '****错误4**** If strleft = strright Then Exit Do End If k = k + 1
Loop While k <= length / 2 If k > length / 2 Then
Form1.Print str1 & \是回文\ Else
Form1.Print str1 & \不是回文\ End If End Sub
11.已有一模块文件Modify.Bas。该模块中的BubbleSort过程是冒泡排序法;GenerateData过程产
生10个[1,20]之间互不相同的随机整数;Swap过程交换两个变量的数值。 程序如下: 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 End Sub
Public Sub GenerateData() Dim i As Integer Dim j As Integer Dim b As Boolean For i = 1 To n b = False Do While Not b
a(i) = Int(20 * Rnd + 1) b = True '****** 3 ****** For j = 1 To i If a(i) = a(j) Then b = False Exit For End If Next j Loop
Form1.Print a(i)
Next i End Sub
'******** 4 ********
Public Sub Swap(ByVal a As Integer, ByVal b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub
12.已有一模块文件Modify.Bas。该模块中的 Transfer 过程用于将一个十六进制整数转换为十进制整数;number 函数过程用于将一个十六进制符号转换为数值。 程序如下: Public Sub Transfer()
Dim Hex As String '十六进制数 Dim Dec As Double '十进制数 Dim temp As String Dim i As Integer Dim n As Integer
Hex = InputBox(\输入一个十六进制整数\ '****** 错误1 ******* n = Val(Hex) i = 0 Do
'****** 错误2 ******* temp = Mid(Hex, i, 1) '****** 错误3 ******* Dec = Dec + number * 16 ^ i i = i + 1 Loop While i < n '****** 错误4 ******
Form1.Print str(Hex) & \转换为十进制数为\End Sub
Public Function number(str As String) As Integer Select Case str Case \ number = 10 Case \ number = 11 Case \ number = 12 Case \ number = 13
相关推荐: