专题练习十——加试17题.pdfVIP

  • 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 中输出总行数,运行效 果如图所示。分行算法

文档评论(0)

1亿VIP精品文档

相关文档