VB程序填空复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级VB程序设计练习
程序填空
1.下面程序按每行10个数打印出30个介于-300到300间无重复的随机整数,并显示其中的最小值。数组b(30)存放所产生的无重复的随机整数,运行结果如图所示。
Private Sub Command1_Click()
Dim b(30), j As Integer, k As Integer
Dim y As Integer, x As Single, min As Integer
For j = 1 To 30
lb:
x = Rnd
If x > 0.5 Then y = 1 Else y = -1
b(j) = y * Int(Rnd*301)
k = 1
Do While k If b(j) = b(k) Then Goto lb k = k + 1 Loop Print b(j); If j Mod 10=0 Then Print Next j min = b(1) For j = 1 To 30 If b(j) < min Then min=b(j) Next j Print min End Sub 2.下面程序用于对9位的号进行校验。参数mno存放号,mjy存放产生的校验位,tag判断校验正确否,若校验正确tag置1,否则为0。产生校验位的算法为:取号右边的8位之和关于9的模作为校验值,号最左边的一位为校验位。 Public Sub foe(ByVal mno As String, mjy As Integer, Tag As Integer) Dim msum As Integer, m As String msum = 0 for j=2 to 9 m = Mid(mno, j, 1) msum = msum + Val(m) Next j mjy = msum mod 9 If mjy = val(left(mno,1)) Then Tag = 1 Else Tag = 0 End If End Sub Command1_Click事件用于调用foe子过程,对输入到文本框Text1的号进行校验,如果校验正确,显示“正确”,否则显示“错误”,同时显示正确的校验码。 Private Sub Command1_Click() Dim nn As Integer, mtag As Integer If Len(Text1) <> 9 Or Not IsNumeric(Text1) Then MsgBox "非法数据,请重新输入!" Text1 = "" Text1.SetFocus Exit Sub End If Call foe(Text1, nn, mtag) If mtag Then Print "正确" Else Print “错误” ;nn End If End Sub 3.下面的程序按从小到大的顺序随机产生不超过20个介于100到400(包括100、400)的数,每次产生的一个数总大于它前面已产生的数,然后求产生的数的平均值。数组b(20)用于存放所产生的随机数,运行结果如图所示。 Private Sub Command1_Click() Dim b(20), i As Integer, j As Integer, sum As Single j = 1 Do re: b(j) = Int (Rnd*301+100) If b(j) = 400 Or j = 20 Then Exit Do ElseIf b(j) <= b(j - 1) Then GoTo re End If j=j+1 Loop sum = 0 For i = 1 To j Print b(i); Sum=sum+b(i) Next i Print "aver="; sum/j End Sub 4.新的号由18位组成,最低位(右边)为校验位,其算法是:10-(前17位之和关于10的模)。函数foe用于对18位的进行校验。参数mstr存放号,md为产生的校验位,若校验正确,函数返回“True”,否则返回“False”。 Public Function foe(ByVal mstr$, md%) As Boolean Dim mp As String, msum As Integer msum = 0 For i=1 To 17 mp = Mid(mstr, i, 1) msum = msum + Val(mp) Next i md = 10 – msum mod 10 If md = val(right(mstr,1)) Then foe = True Else foe = False End If End Function Command1_Click事件用于调用foe子过程,对输入到文本框Text1的号进行校验,如果校验正确,显示“True”,否则显示“False”和的校验码值。 Private Sub Command1_Click() Dim mm As Integer If Len(Text1) <> 18 Or Not IsNumeric(Text1) Then MsgBox "非法数据,请重新输入!" Text1 = "" Text1.SetFocus Exit Sub End If If foe(Text1, mm) = True Then Print "True" Else Print “False”;m m End If End Sub