Программирование задач

Задача №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, соответственно).

Второй «слой»


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



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