Dim I As Integer, D1 As Integer, D2 As Integer, D3 As Integer, D4 As Integer
Dim Str1 As String
Dim Str2() As String
Private Sub Form_Load()
Command1.Caption = "随机0,1字符"
Command2.Caption = "计算"
End Sub
Private Sub Command1_Click() '随机出一个由0和1组成长度为21的字符串
Randomize
Str1 = ""
For I = 0 To 20
Str1 = Str1 & Math.Round(Rnd)
Next I
Text1.Text = Str1 '随机出的字符串显示在text1中
End Sub
Private Sub Command2_Click() '计算D1,D2,D3,D4
D1 = 0
D2 = 0
D3 = 0
D4 = 0
ReDim Str2(21)
For I = 0 To 20 '将字符串str1分解成数组str2()以作判断
Str2(I) = Mid(Str1, I + 1, 1)
Next I
'D1,最开始有多少个0
For I = 0 To 20
If Str2(I) = "0" Then
D1 = D1 + 1
Else
Exit For
End If
Next I
'D2,0后面到0之间有多少个1
For I = D1 To 20
If Str2(I) = "1" Then
D2 = D2 + 1
Else
Exit For
End If
Next I
'D3,第二组0的个数
For I = D1 + D2 To 20
If Str2(I) = "0" Then
D3 = D3 + 1
Else
Exit For
End If
Next I
'D4,第二组1的个数
For I = D1 + D2 + D3 To 20
If Str2(I) = "1" Then
D4 = D4 + 1
Else
Exit For
End If
Next I
MsgBox Text1.Text & "计算结果为:" & vbCrLf & "D1=" & D1 & vbCrLf & "D2=" & D2 & vbCrLf & "D3=" & D3 & vbCrLf & "D4=" & D4
End Sub
''''看能看懂不,不能联系。
需要更好的答案找我。