“11,12,13,1—2,13,……4—2,4—3,4—2,4—2,”,每组第1位数表示第几节,后续的数表示得分.如“3—2”表示第3节B队得2分,“31”表示第3节A队得1分。
编写VB程序,统计出AB两队中连续进攻得分次数最多的节次、队伍以及次数(若次数相同取第1个).运行程序,在标签Label1中显示结果,程序界面如图所示。
(1)观察程序运行界面,统计第1节中连续进攻得分次数最多的队伍及次数
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码.
Const n = 200
Dim c(1 To n) As String
Private Sub Command1_Click()
Dim a(1 To n) As Integer, b(1 To n) As String
Dim i As Integer, k As Integer, imax As Integer, m As Integer, pos As Integer, P As
String, s As String, ch As String, t As String
s = Text1.Text: k=1
For i= 1 To Len(s) ’获取数据
ch = Mid(s, i, 1)
If ch < >“,” Then
t=t+ch
Else
a(k) = Va1 (Mid(t, 1, 1))
b(k) =
c(a(k)) = c(a(k)) + b(k)
t= “” :k=k+1
End If
Next i
imax=0:pos=0
For i=1 To 4
m = cs(i)
If
Next i
If imax > 0 Then p = “A” Else p= “B”
Label1. Caption = “连续进攻得分次数最多的队伍是” + p + “队的第” + Str(pos) + “节,次数为” + str(bs(inmax))
End Sub
Function cs(a As Integer) As Integer ’统计每节连续进攻得分最多的次数
Dim sa As String, mark As Integer, maxd As Integer, cnt As Integer, i As Integer
maxd=0:mark=0:cnt=0:i=1
Do While i <= Len(c(a))
sa = Mid(c(a), i, 1)
If sa = “-” Then
If mark = 1 Then
If Abs(cnt) > Abs (maxd) Then maxd = cnt
cnt = -1
Else
End If
i=i+2
mark = -1
Else
If mark = -1Then
If Abs(cnt) > Abs (maxd) Then maxd = cnt
cnt=1
Else
cnt=cnt+1
End If
i=i+1
mark = 1
End If
Loop
If Abs(cnt) > Abs (maxd) Then maxd = cnt
cs = maxd
End Function
同类型试题
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