(1)这两项运动在记录中必须连续出现,不能被其他运动打断,如“1,2,2,1,2”是一种可能的结果;“1,2,2,1,2,3”则不是可能的结果;
(2)这两项运动在记录中出现的次数必须是最多的一种组合。
运动记录 | 1,1,2,3,2,3,2,3,3,1,1,4,3 | ||||
序号 | ① | ② | ③ | ④ | ⑤ |
两项运动 | 1,1,2 | 2,3,2,3,2,3,3 | 3,3,1,1 | 1,1,4 | 4,3 |
从上表分析可知,小张在一段时间内连续进行的两项运动有5种不同组合,其中组合②中的两项运动持续时间最长,所以最“喜爱”的两项运动为2和3,共连续进行了7次。
根据算法思想,编写VB程序实现如下功能:程序初始化时读取小张记录的一段时间内的所有运动项目,以逗号间隔显示在文本框Text1中,单击“寻找运动项目”按钮Command1,在标签Label4上显示最喜爱的两项运动编号,在文本框Text2中显示这两项运动最长持续的次数。程序运行界面如图所示。

(1)若输入序列为“3,5,5,4,3,5,5,5,3,3,2,6”,最喜爱的两项运动连续进行的次数为
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 100) As Integer, n As Integer
Private Sub Form_Load()
'读取已有记录项目总数 n
'读取记录的每次运动项目存入数组 a,并在文本框 Text1 中显示,代码略
End Sub
Private Sub Command1_Click()
Dim x As Integer, y As Integer 'x,y 分别表示当前记录中两个不同项目
Dim c1 As Integer, c2 As Integer 'c1,c2 分别表示两个项目在当前统计过程中出现的次数
Dim i As Integer, j As Integer, m1 As Integer, m2 As Integer, ans As Integer
i = 1: j = 1
Do While j <= n And a(i) = a(j)
j = j + 1
Loop
x = a(i): y = a(j)
c1 =
c2 = 1
ans = j - i + 1
Do While j < n
j = j + 1
If a(j) = x Then
c1 = c1 + 1
ElseIf a(j) = y Then
c2 = c2 + 1
Else
Do While
If a(i) = x Then c1 = c1 – 1 Else c2 = c2 - 1
i = i + 1
Loop
If
y = a(j)
c2 = 1
Else
x = a(j)
c1 = 1
End If
End If
If ans < j - i + 1 Then
ans = j - i + 1
m1 = x
m2 = y
End If
Loop
Label4.Caption = Str(m1) + "和" + Str(m2)
Text2.Text = Str(ans)
End Sub

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

