身份证号 | 姓名 | 性别 | 是否接种 | 最后一针接种时间 | 疫苗品牌 |
330281*4115 | 张立 | 男 | 是 | 2020-3-10 | 北京生物 |
330281*320X | 李丹 | 女 | 否 | / | |
330281*8617 | 苏宁 | 男 | 是 | 2020-3-28 | 科兴中维 |
…… | …… | …… | …… | …… | …… |
下列关于该数据表的描述,错误的是( )
i=1:j=10:k=1:key=Val(Text1.Text)
Do While I < =j
m=(i+j+1)\2
If key = a(m) Then
Exit Do
Else If key < a(m) Then
i=m+1:k=k*2
Else
j=m-1:k=k/2
End If
Loop
Text2.Text = Str(k)
数组元素a(1)到a(10)的值依次为“120,97,88,66,50,46,24,20,18,6”,在文本框Text1输入下列选项值,所得的输出结果与其他三项不同的是( )
请回答下列问题:
例如,有10条报名数据,来自5个不同的学校,学校编码依次是2,1,2,4,3,3,5 , 5,3,5,则包含5个学校的最短区间是从第2个到第7个,并从List2中显示所选区间中的志愿者姓名,程序界面如图所示。
Dim bm(1 To 100) As Integer, k As Integer
Dim xm(1 To 100) As String, n As Integer
Private Sub Form Load( )
‘本过程从数据库中读入指定数据到数组bm、xm中,并在List1中显示
‘获取k,表示不同学校数: n表示报名记录总数代码略
End Sub
Private Sub Command1_Click( )
Dim m As Integer
i = k:j=n
Do While i <=j
m=
If judge(m) <> 0 Then
j=m-1
ans = m: start = judge (m)
Else
i=m+1
End If
Loop
For i=1 To ans
List2.AddItem
Next i
Label1.Caption =“共选出志愿者”+ CStr(ans) + "人”
End Sub
Function judge(m As Integer) As Integer ‘judge函数用于返回区间起始位置
Dim f(1 To 11) As Integer 'f(i)表示i学校是否包含在区间
Dim t As Integer
judge = 0
For i=1 To n-m+ 1 ‘枚举以i为起点的区间内是否包含各个学校
t=0
For j=i To i+m-1
If Then t=t+ 1
f(bm(j)) = 1
Next j
If t=k Then : Exit Function
For j=1 To k
f(j) = 0
Next j
Next i
End Function
在Text1中输入班级,在Text2中输入姓名,单击“查询”按钮Command1,显示:①学生行列位置显示在标签Label2中:②学生具体位置显示在列表框List1中。程序运行界面如图所示。
班级 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
…… |
姓名 |
王宽 |
彭建飞 |
杨健 |
黄楠 |
李明 |
李英 |
张本初 |
吴曦 |
宋纯 |
姜明 |
…… |
节目编号 |
1 |
5 |
2 |
5 |
5 |
2 |
1 |
4 |
5 |
5 |
…… |
表1 |
Const n = 150
Const row = 10: Const col = 20
Const acty = 3: Const actx= 4
Dim a(1 To n) As Strire, b(1 To n) As String, c(1 To n) As String
Dim e(1 To row * col) As String ‘存储学生姓名
Private Sub Command1_Click( )
num = f(Text1. Text, Text2. Text)
If num <> 0 Then
l= (num-1) \col + 1
'在list1中用实心图形标记查找到的位置,代码略
Label2. Caption =“你的位置在:第“+ Str(1) +”排,第“+ Str(r) + ”列”
Else
Label2. Caption =“没有找到你的座位!”
End If
End Sub
Private Sub Form _Load( )
Dim lastn As Integer, m As Integer ,flag As Boolean,k As Integer
'读取班级、学生姓名、参加节目编号到数组a、b、c中,代码略
flag = True: lastn = 1
Do While flag
For j=n To lastn+1 Step -1
If c(j)<c(j-1) Then
t= a(j): a(j) = a(j-1): a(j- 1) = t
t=b(j): b(j) = b(j-1): b(j- 1) = t
t=c(j): c(j) = c(j- 1): c(j-1)= t
lastn = j:flag = True
End If
Next j
Loop
‘座位初始化,并且在list1中显示,代码略
m=1:k=13
For i=1 To row
For j=1 To col
If Then
e((i-1) *col+j)=b(m):m=m+1
ElseIf k <= n Then
e((i - 1) * col + j) = b(k):k=k+1
End If
Next j
Next i
End Sub
Function f(a As String,b As String) As Integer
‘函数f根据输入的班级、姓名返回在数组e中的位置,如果没有找到则返回数字0
End Function