学校心理活动节举办“两人三足跑”比赛,比赛规则为:
⑴起点与终点之间共有10 个站点(包括起点与终点),依次为站点1、站点2……、站点10。参赛选手均从起点(站点1)出发,最先恰好到达终点(站点10)的一组选手为胜;
⑵对“恰好到达终点”的界定。比赛前,参赛选手随机抽取一个行进方案,该方案由5个正整数(范围为1~6)组成,表示参赛选手整个行程分5 个阶段完成,并规定了每个阶段能行进的站点数。若某一阶段按所给站点数行进还未到达终点,则向前(终点方向)行进;若某一阶段按所给站点数行进超过终点,则要折回直至行进完所给站点数;前四个阶段不出现按所给站点数行进恰好到达终点的情况,直至行进满五个阶段,且第五阶段按所给站点数行进恰好到达终点,则称为“恰好到达终点”。如方案“3,1,6,4,3,”满足“恰好到达终点”,按该方案行进的过程如图a所示:
组织方为了验证设计方案,编写了如下VB 程序:在文本框Text1 中输入待检验的方案(输入1~6 范围内的整数并以逗号分隔,且以逗号结束。例如:“3,1,6,4,3,”),单击“验证”按钮Command1,判断方案是否能恰好到达终点。若能,在标签Label2中显示“可行方案!”;若不能,则显示“不可行方案!”。程序界面如图b所示。
(1)
若对方案“5,2,6,3,1,”进行验证,则该方案的验证结果是。
(2)
实现上述功能的VB
程序如下,请在划线处填入合适的代码。
Const n = 10
Private Sub Command1_Click( )
Dim a(1 To
n)As Integer '表示每一个起点距离终点的站点数
Dim b(1 To
5)As Integer
Dim start
As Integer, cnt As Integer, endsAs Integer
Dim i As
Integer, j As Integer, c As String, sAs String
Dim flag
As Boolean
s =
Text1.Text: j = 1
For i = 1
To n
a(i) =
n - i
Next i
For i = 1
To Len(s)
c =
Mid(s, i, 1)
If c = "," Then
Else
b(j)
= Val(c)
End If
Next i
cnt = 1:
flag = True
start = 1:
ends = 0
i = 1
Do While
flag = True And i <= 5
If
b(i) = a(start) Then
flag
= False
Else
ends
= start + b(i)
start
= adjust(ends)
cnt
= cnt + 1
End If
i = i
+ 1
Loop
If Then
Label2.Caption
= "可行方案!"
Else
Label2.Caption
= "不可行方案!"
End If
End Sub
'adjust函数的作用是:根据参数ends的值来调整start的值
Function adjust(endsAs Integer) As Integer
Dim start
As Integer
If ends
< n Then start = ends Else start =
adjust =
start
End Function
答案: 【1】可行方案!
【1】j = j + 1【2】flag = False And cnt = 5【3】n - (ends - n) 或者: 2 * n - ends