某学校某一年级共有m(偶数)个班级,在开展运动会期间,所有班级的学生随机站成一排并按位置顺序进行编号,已知共有n位同学。现要选取k位选手参加跳绳比赛,选取方法是:在排好的队列中选取连续的k位(k是偶数且k>=m)学生,要求每个班级至少有一位学生参加比赛,并且参赛的男生人数和女生人数相同。现要设计一VB程序,确定选取学生的起止位置,VB的部分界面如下图所示,加载窗体时,在List1中生成n个学生所处的位置和学生编号,其中位置就是学生所在队列中的位置,学生编号由两位数字构成,即班级+性别(0表示男生,1表示女生),在文本框Text1中输入抽取的学生的人数k,单击“抽取”按钮Command1,在列表框List2中显示满足条件的所有队列情况。
(1)
若共有4个班级,学生排列的编号是11,21,30,11,40,41,30,21,20,10,11,20,31,40,若k=4,共存在种抽取方案。
(2)
请在划线处填入适当代码。
Dim
s As String
Dim
i As Integer,sum As Integer
Dim
a(1 To 1000) As Integer
Dim
b(1 To 1000) As Integer
Dim
ton(1 To 6) As Integer '存储选中队列中各个班级的人数
Const
m = 6
Const
n = 300
Private
Sub Form_Load()
For i = 1 To n
'随机生成n个学生编号显示在列表框List1中,并将学生的班级号和性别分别存储在数组a和b中
Next i
End
Sub
Private
Sub Command1_Click()
Dim j As Integer, k As Integer, tmp As
Integer
k=Val(Text1.text)
For i = 1 To n – k + 1
For j =
If ton(a(j)) = 0 Then
sum = sum + 1
End If
If xb(b(j)) = False Then tmp = tmp + 1
Next j
If Then
List2.AddItem Str(i) + Str(i + k - 1)
End If
sum = 0: tmp = 0
For k = 1 To m
ton(k) = 0
Next k
Next i
End
Sub
Function
xb(data As Integer) As Boolean
xb = False
If data = 0 Then xb = True
End
Function
答案: 【1】2
【1】i to i+k- 1【2】ton(a(j))= ton(a(j))+1 或者ton(a(j))=1【3】sum=m And tmp=k/2