s1 = Text1.Text: s2 = "":n = Len(s1): i = 1
Do While i <= n
ch = Mid(s1, i, 1)
If ch <> "." Then
p = 8: x = Val(ch)
Do While p > 0
Loop
Else
s2 = s2 & ch
End If
i = i + 1
Loop
方框中的代码由以下三部分组成:
①x = x Mod p ②p = p \2 ③s2 = s2 & x \p
下列选项中,代码顺序正确的是( )
j = 1: p = 5
Do While p > 0
j = (j + k -2) Mod p + 1
s1 = s1 &j
s = Mid(s, 1, j -1) + Mid(s, j + 1)
p = p -1
Loop
已知s1的初值为""(空),下列选项关于s1的最终结果错误的是( )
key = Text1.Text
i = 1: j = 9
Do While i <= j
m = (i + j) \2
If key < shenz(m) Then j = m -1 Else i = m + 1
Loop
Text2.Text= str(j)+"架"
下列选项中输入Text1的数据与输出j的值不符的是( )
图a
图b
图a
请回答下面几个问题:
设计一个VB程序,模拟生成10件货物的上升或者下降需求,在数组en和ex中分别记录每件货物起始楼层和目标楼层,将初始需求输出到列表框List1中,然后点击按钮Command1完成货物起始楼层先升后降的排序,当起始楼层相同时,上升中则目标楼层升序,下降中则目标楼层降序。将排序结果输出到列表框List2,最后计算出上升和下降分别需要的总时长输出到文本框Text1。程序界面如下:
Const n = 10:Const m = 7
Dim en(1 To n) As Integer, ex(1 To n) As Integer
Dimf(1 To n) As Integer '值为1表示货物往上运送,值为-1表示货物往下运送
'n件货物起始楼层、目标楼层以及升降值分别存入数组en,ex,f,输出到List1,代码略
Private Sub Command1_Click()
Dim i As Integer, j As Integer, up1 As Integer, up2 As Integer
Dim t(1 To 2) As Integer, first As Integer, last As Integer, p As Integer
For i = 1 To n -1
For j = n To i + 1 Step -1
up1 = f(j)*(en(j)*10+ex(j)): up2 = f(j-1)*(en(j-1)*10+ex(j-1))
If f(j) > f(j -1) Or f(j) = f(j -1) AndThen
p = f(j): f(j) = f(j -1): f(j -1) = p
p = en(j): en(j) = en(j -1): en(j -1) = p
p = ex(j): ex(j) = ex(j -1): ex(j -1) = p
End If
Next j
Next i
i = 1: first = en(1): last = ex(1): p = 1
Do While i < n '计算货梯上升时间和下降时间
i = i + 1
If Then '改错
t(p) = t(p) + (last -first) * 3
last = ex(i): first = en(i)
ElseIf f(i) * (en(i) -last) > 0 Then
t(p) = t(p) + f(i) * (last -first) * 3
last = ex(i): first = en(i)
ElseIf f(i) * (en(i) -last) <= 0 And f(i) * (ex(i) -last) > 0 Then
End If
Loop
t(p) = t(p) + f(i) * (last -first) * 3
Text1.Text = "升降货梯分别需要" & t(1) & "和" & t(2)& "分钟完成。"
'将排序后的升降信息输出到List2,代码略
End Sub
现在设计一个VB程序,计算三个年级每一个批次进入食堂排队打菜完需要的相对等待时间平均值(输出到标签Label1,单位:分钟),以及抽样调查:在文本框Text3中输入某年级第n位进入食堂的同学,排队打到饭菜需要的时间(单位分钟,取整)并输出到标签Label2中。程序运行界面如第16题图所示。
Const n= 1500:Const nj = "
Dim d(1 To 3 * 5) As Integer, cw(1 To 100) As Integer, w(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t(1 To 3) As Integer
Dim k As Integer, sum As Long, aver As Integer
t(1) = TtoM(Text1.Text):k = Val(Text2.Text)
For i = 1 To 3
If i > 1 Then t(i) = '三个年级的午餐时间
For j = 1 To 5
d((i -1) * 5 + j) = t(i) + j -1 '记录三个年级每个批次进入食堂的时间点
Next j
Next i
List1.Clear
For i = 1 To 15
'输出三个年级每个批次进入食堂的时间点,代码略
Next i
For j = 1 To n
If j Mod 15 = 1 Then
i = (j -1) \15 + 1
cw(i) = (i -1) * 10 '每个打菜窗口的等待时间(单位:秒)
End If
w(j) = cw(i) -() * 60 '每位同学打菜等待时间
sum = sum + w(j)
Next j
aver = sum \n \60
Label1.Caption = "平均排队打菜时间:" + Str(aver) + "分钟"
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer, s As String
s = Text3.Text
i = 1
Do While i <= 3
If Then j = (i -1) * 500 + Val(Mid(s, 4)): Exit Do
i = i + 1
Loop
Label2.Caption = s+"进入食堂的同学大约" +Str(w(j)\60)+ "分钟左右打到饭菜。"
End Sub
Function TtoM(t As String) As Integer
'将时间转换为绝对数值,例如t="12:01"→TtoM=721,代码略
End Function
Function MtoT(m As Integer) As String
'将时间绝对数值转换为时间格式,代码略
End Function