Задача №1
Условие:
Дано натуральное число n, действительные числа a1, a2, …, an.
Вычислить min(a1, -a2, a3, …, (-1)nan).
Программный код:
Sub Zadacha1()
Dim A() As Integer, min As Integer, s As String, ss As String
Dim n As Integer, i As Integer, temp As Integer
Randomize
n = InputBox (“Введите натуральное число n”)
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
MsgBox "Исходный ряд " & vbCrLf & s & vbCrLf & _
"Преобразованный ряд " & vbCrLf & ss & vbCrLf & _
"Минимум является " & min
End Sub
Задача №2
Условие:
Даны натуральные числа n, a1, a2, …, an.
Найти члены последовательности, являющиеся полными квадратами.
Программный код:
Sub Zadacha2()
Dim n As Integer, A() As Integer
Dim i As Integer, s As String, ss As String
n = InputBox (“Введите число n”)
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
MsgBox "В ряду чисел" & vbCrLf & s & _
vbCrLf & "полных квадратов нет"
ElseIf UBound(Split(ss, " ")) = 1 Then
|
|
MsgBox "В ряду чисел" & vbCrLf & s & _
vbCrLf & "полным квадратом является число" & _
vbCrLf & ss
Else
MsgBox "В ряду чисел" & vbCrLf & s & _
vbCrLf & "полными квадратом является числа" & _
vbCrLf & ss
End If
End Sub
Задача №3
Условие:
Дана строка символов.
Подсчитать наибольшее количество идущих подряд пробелов.
Программный код:
Public Sub Zadacha3()
Dim S1, sChar, i, iCol, sMsg
S1 = InputBox (“Введите текст”)
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
MsgBox "Пробел встречается в строке" & vbNewLine _
& "'" & sMsg & "'" & vbNewLine & "максимум" & imax & " раз подряд."
ElseIf imax = 0 Then
MsgBox "Пробел встречается в строке" & vbNewLine _
& "'" & sMsg & "'" & vbNewLine & "максимум" & imax & "0 раз подряд."
Else
MsgBox "Пробел встречается в строке" & vbNewLine _
& "'" & sMsg & "'" & vbNewLine & "максимум" & imax & " раза подряд."
End If
End Sub
Создание формы.
Свою форму я создал в VBA, при помощи «Insert → UserForm»
Данная форма состоит из двух «слоев».
Первый «слой» представляет собой «оболочку» для программ. Здесь мы можем видеть саму «Форму» программы, Фамилию И.О. и группу человека, выполнившего расчетную работу, и кнопки с надписями «Задание №1», «Задание №2», «Задание №3».
Кнопки носят имя в программном коде: z1, z2 и z3, соответственно.
Первый «слой»
Второй «слой» содержит:
· Условие задачи.
· Поле для внесения данных (носит имя: t1, t2 и t3, соответственно).
· Кнопку «Х», для перехода к первому «слою» (носит имя: x1, x2 и x3, соответственно).
|
|
· Кнопку «вычислить», для приведения программы в действие, после того, как ввели данные с клавиатуры (носит имя: v1, v2 и v3, соответственно).
· Окно для ответа (носит имя: o1, o2 и o3, соответственно).
Второй «слой»