VB程序填空复习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档