Нам необходимо объединить все наши задачи с формой, для того, чтоб решать задачи именно через созданную нами форму.
Для этого мы немного откорректируем наш программный код программ, а именно:
· Изменение имен программ с «zadacha1», «zadacha2» и «zadacha3» на название наших кнопок «Вычислить»: «v1_Click», «v2_Click» и «v3_Click» соответственно.
· Заменим «InputBox» на «t1», «t2» и «t3» соответственно.
· Заменим «MsgBox» на «o1 =», «o2 =» и «o3 =» соответственно.
· Добавим несколько строк для фокусировки на объекты, видимость/невидимость объектов и прочее.
В конечном итоге получаем вот такой код:
'###########################################
'##################Задача 1###################
'###########################################
Public Sub z1_Click()
z1.Visible = False
t1.Enabled = True
End Sub
Public Sub x1_Click()
z1.Visible = True
End Sub
Public Sub v1_Click()
Dim A() As Integer, min As Integer, s As String, ss As String
Dim n As Integer, i As Integer, temp As Integer
Me.o1.SetFocus
Randomize
n = t1
If n > 0 Then ReDim A(1 To n) As Integer
min = A(1)
For i = 1 To n
A(i) = Int(Rnd * 100 + 1)
temp = (-1) ^ (i + 1) * A(i)
If temp < min Then min = temp
s = s & CStr(A(i)) & " "
ss = ss & temp & " "
Next i
o1 = "Исходный ряд " & vbCrLf & s & vbCrLf & _
|
|
"Преобразованный ряд " & vbCrLf & ss & vbCrLf & _
"Минимумом является " & min
End Sub
'###########################################
'##################Задача 2###################
'###########################################
Public Sub z2_Click()
z2.Visible = False
t2.Enabled = True
End Sub
Public Sub x2_Click()
z2.Visible = True
End Sub
Public Sub v2_Click()
Dim n As Integer, A() As Integer
Dim i As Integer, s As String, ss As String
Me.o2.SetFocus
n = t2
ReDim A(1 To n)
Randomize
For i = 1 To n
A(i) = Int(Rnd * 100 + 1)
If Sqr(A(i)) = Int(Sqr(A(i))) Then ss = ss & A(i) & " "
s = s & CStr(A(i)) & " "
Next i
If ss = "" Then
o2 = "В ряду чисел" & vbCrLf & s & _
vbCrLf & "полных квадратов нет"
ElseIf UBound(Split(ss, " ")) = 1 Then
o2 = "В ряду чисел" & vbCrLf & s & _
vbCrLf & "полным квадратом является число" & _
vbCrLf & ss
Else
o2 = "В ряду чисел" & vbCrLf & s & _
vbCrLf & "полными квадратом является числа" & _
vbCrLf & ss
End If
End Sub
'###########################################
'##################Задача 3###################
'###########################################
Public Sub z3_Click()
z3.Visible = False
t3.Enabled = True
End Sub
Public Sub x3_Click()
z3.Visible = True
End Sub
Public Sub v3_Click()
Dim S1, sChar, i, iCol, sMsg
Me.o3.SetFocus
S1 = t3
sMsg = S1
sChar = " "
i = 1
Do
i = InStr(i, S1, sChar)
If i = 0 Then Exit Do
iCol = 0
Do While Mid(S1, i, 1) = sChar
S1 = Replace(S1, sChar, "", 1, 1)
iCol = iCol + 1
Loop
If iCol > imax Then imax = iCol
Loop
If imax = 1 Or imax >= 5 Then
o3 = "Пробел встречается в строке" & vbNewLine _
& "'" & sMsg & "'" & vbNewLine & "максимум" & imax & " раз подряд."
ElseIf imax = 0 Then
o3 = "Пробел встречается в строке" & vbNewLine _
& "'" & sMsg & "'" & vbNewLine & "максимум" & imax & "0 раз подряд."
Else
o3 = "Пробел встречается в строке" & vbNewLine _
& "'" & sMsg & "'" & vbNewLine & "максимум" & imax & " раза подряд."
End If
End Sub