Объединение программного кода трех задач с формой

Нам необходимо объединить все наши задачи с формой, для того, чтоб решать задачи именно через созданную нами форму.

Для этого мы немного откорректируем наш программный код программ, а именно:

· Изменение имен программ с «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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: