- 0
- 0
- 约2.8千字
- 约 2页
- 2023-07-03 发布于四川
- 举报
专题练习十——加试 17题
班级 姓名
1、用 VB 编写一个模拟在 900 个观众中产生 10 个中奖号码的程序,每位观众用三位数字
进行编号,要求产生的 10 个号码不能重复,并且升序排列输出。
①检查产生号码是否重复:把产生的中奖号码放在数组 a 中,新产生的号码与已经产生的
号码进行一一对比,如果找到相等的数,则重新产生新号码。
②找到新产生号码存放的数组下标:从下标为 1 的数组元素开始,新号码(第 i个号码)
分别与他们进行一一比较,找到第一个比新号码大的数,该数所在的下标就是新号码应存
放的下标。如果在已经产生的数中没有找到比新号码大的数,则新号码应存放在下标为 i
的数组元素中。下表以产生第 5 个号码为例,如果产生的号码是 150,第一个比他大的数
是 a(2),下标为 2 的数组元素应存放新号码;如果产生的号码是 300,则新号码应存放在
下标为 5 的数组元素中。
数组元素 a(1) a(2) a(3) a(4)
数组元素的值 120 188 211 278
③移动数组元素到新的位置:如果在已经产生的号码中找到比新号码大的数,从上一个产生的号码开始,到新号码
应存放的数组元素,依次把他们向后面移动。以②中产生 150 为例,从 a(4)开始,让 a(5)的值等于 a(4),a(4)的
值等于 a(3),依次类推,直到新号码应存放的数组元素 a(2)为止。
④将新产生的号码放在相应的数组元素中。
程序运行的界面如图所示,实现上述功 能的VB 程序代码如下:
Dim a(10) As Single
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim temp As Single, k As Integer ‘temp产生随机数,k 随机数存放数组元素的下标
Randomize
a(1) = Int(Rnd() * 900 + 100)
For i = 2 To 10
temp = Int(Rnd() * 900 + 100)
If seach(temp, i - 1)= True Then
i = i – 1
Else
k = i
For j = 1 To i - 1
If temp a(j) Then k = j: Exit For
Next j
For j = i - 1 To k Step -1
a(j + 1) = a(j)
Next j
①
End If
Next i
List1.Clear
For i = 1 To 10
List1.AddItem Str(a(i))
Next i
End Sub
‘函数实现在数组a 中,从下标为 1 的数组元素到下标为 t 数组元素,查找有无 pp 的数值
Function seach(pp As Single, t As Integer) As Boolean
Dim i As Integer
seach = False
For i = 1 To t
If ② Then seach = True : Exit For
Next i
End Function
(1 )程序中划线处①应填入
程序中划线处②应填入
(2 )加框处的程序段实现的功能是 。
2、用 VB 编写一个字符串分行程序,功能如下:单击“分行”按钮 Command1,将文本框 Text1 中的英文文本在列表框
List1 中分行显示(分行时单词不得跨行,每行字符尽可能多但不超过 40 个,并在标签 Label1 中输出总行数,运行效
果如图所示。分行算法
您可能关注的文档
最近下载
- 儿童家庭养育环境量表.pdf VIP
- 国内业务培训常旅客操作.pptx VIP
- 分析我国高校足球运动本科专业的建设目标、面临的挑战和实现路径.docx VIP
- 国家建筑标准设计图集22G101-3 混凝土结构施工图平面整体表示方法制图规则和构造详图(独立基础、条形基础、筏形基础、桩基础).pdf VIP
- 中介帮助贷款的合同8篇.docx VIP
- 生猪养殖标准化示范项目监理规划.docx VIP
- 第9章 中心对称图形-平行四边形(思维导图+知识梳理+易错点拨+20大考点讲练+优选压轴题专练 共56题)解析版.docx VIP
- 耶鲁电子锁 电子锁 智能锁 ZEN-R 使用说明.pdf
- 理解深度学习教程部分答案.pdf
- 格劳博操作说明书.pdf
原创力文档

文档评论(0)