在考生文件夹下有一个工程文件stj4.vbp,相应的窗体文件为stj4.frm,其功能是通过调用过程FindMax求数组的最大值,请装入该文件,程序运行后,在四个文本框中各输入一个整数,然后单击命令按钮,即可求得数组的最大值,并在窗体上显示出来(如下图所示)。这个程序不完整,请把它补充完整,并能正确运行。
试题源程序:
1 Option Base 1
2 Private Function FindNax(a( )As Integer)
3 Dim Start As Integer
4 Dim Finish As Integer,i As Integer
5 ’Start=(a)
6 ’Finish=(a)
7 ’Max=(Start)
8 For i=Start To Flnlsh
9 ’If a(i)Nax Then Nax=
10 Next i
11 FindMax=Nax
12 End Function
13 Private Sub Command1_Click( )
14 Dim arr1
15 Dim art2(4)As Integer
16 arr1=Array(Val(Text1.Text),Val(Text2.Text),Val(Text3.Text),Val(Text4.Text))
17 For i=1 To 4
18 arr2(i)=CInt()
19 Next i
20 ’M=FindUax()
21 Print"最大值是:";M
22 End Sub
参考答案:
(1)启动VB程序,打开考生文件夹下的工程文件stj4.vbp。
(2)双击窗体中的任何位置,进入代码编辑窗口,完善程序如下:
1 private Function FindMin(a( )As Integer)
2 Dim Start As Integer
3 Dim Finish As Integer,i AsInteger
4 Start=LBound(a)
5 Finish=UBound(a)
6 Min=a(Start)
7 For i=Start To Finish
8 If a(i)<Min Then Min=a(i)
9 Next i
10 FindMin=Min
11 End Function
12 Private Sub Command1_Click( )
13 Dim art1
14 Dim art2(4)As Integer
15 arr1=Array(Val(Text1.Text),Val(Text2.Text),
Val(Text3.Text),Val(Text4.Text))
16 For i=1 To 4
17 art2(i)=CInt(arr1(i))
18 Next i
19 M=FindMin(art2( ))
20 Print "最大值是:";M
21 End Sub
(3)单击启动键运行成功。
(4)按考试要求将文件保存在考生文件夹下。
解析:
过程FindMin求数组的最小值。将数组的第一个值设为最小值Min,其后的值依次与之比较,若小,则将其赋给Min,最终得到的就是最小值。所以有Start=LBound(a),Finish=UBound(a)和Min=a(Start)
2.命令按钮的click事件中对输入的四个数据求最小值,大小比较运算是基于数值的,文本框中数值类型为字符串,所以首先采用Val( )函数进行数据类型转换,然后调用求最小值的FindMin过程得到最小值,并将它输出。