Загрузка данных
Dim A(1 To 10) As Integer ' Объявление массива на уровне модуля
' Кнопка "Ввод массива" (ввод вручную через InputBox)
Private Sub CommandButton1_Click()
Dim i As Integer
Dim str As String
str = ""
For i = 1 To 10
A(i) = CInt(InputBox("Введите " & i & "-й элемент массива", "Заполнение массива"))
str = str & A(i) & " "
Next i
Label2.Caption = str
Label2.Visible = True
Label3.Visible = False ' Скрываем результат предыдущих действий
End Sub
' Кнопка "Задать массив" (генерация случайных чисел от -100 до 100)
Private Sub CommandButton2_Click()
Dim i As Integer
Dim str As String
Randomize
str = ""
For i = 1 To 10
A(i) = Int((100 - (-100) + 1) * Rnd + (-100))
str = str & A(i) & " "
Next i
Label2.Caption = str
Label2.Visible = True
Label3.Visible = False
End Sub
' Переключатель "максимальный"
Private Sub OptionButton1_Click()
Dim max As Integer, i As Integer
max = A(1)
For i = 2 To 10
If A(i) > max Then max = A(i)
Next i
Label3.Caption = "Максимальный элемент: " & max
Label3.Visible = True
End Sub
' Переключатель "минимальный"
Private Sub OptionButton2_Click()
Dim min As Integer, i As Integer
min = A(1)
For i = 2 To 10
If A(i) < min Then min = A(i)
Next i
Label3.Caption = "Минимальный элемент: " & min
Label3.Visible = True
End Sub
' Переключатель "поиск числа"
Private Sub OptionButton3_Click()
Dim searchNum As Integer, count As Integer, i As Integer
If TextBox1.Text = "" Or Not IsNumeric(TextBox1.Text) Then
MsgBox "Введите корректное число для поиска!", vbExclamation
Exit Sub
End If
searchNum = CInt(TextBox1.Text)
count = 0
For i = 1 To 10
If A(i) = searchNum Then count = count + 1
Next i
Label3.Caption = "Число " & searchNum & " встречается " & count & " раз(а)"
Label3.Visible = True
End Sub
' Переключатель "сумма"
Private Sub OptionButton4_Click()
Dim sum As Long, i As Integer
sum = 0
For i = 1 To 10
sum = sum + A(i)
Next i
Label3.Caption = "Сумма элементов: " & sum
Label3.Visible = True
End Sub
' Переключатель "по убыванию" (Сортировка пузырьком)
Private Sub OptionButton5_Click()
Dim i As Integer, j As Integer, temp As Integer
Dim str As String
' Копируем во временный массив, чтобы не портить исходный, либо сортируем прямо его
For i = 1 To 9
For j = i + 1 To 10
If A(i) < A(j) Then
temp = A(i)
A(i) = A(j)
A(j) = temp
End If
Next j
Next i
str = ""
For i = 1 To 10
str = str & A(i) & " "
Next i
Label3.Caption = "Отсортировано по убыванию: " & str
Label3.Visible = True
End Sub
' Переключатель "по возрастанию" (Сортировка пузырьком)
Private Sub OptionButton6_Click()
Dim i As Integer, j As Integer, temp As Integer
Dim str As String
For i = 1 To 9
For j = i + 1 To 10
If A(i) > A(j) Then
temp = A(i)
A(i) = A(j)
A(j) = temp
End If
Next j
Next i
str = ""
For i = 1 To 10
str = str & A(i) & " "
Next i
Label3.Caption = "Отсортировано по возрастанию: " & str
Label3.Visible = True
End Sub
' Кнопка "Выход"
Private Sub CommandButton3_Click()
Unload Me
End Sub
' Инициализация формы (настройки видимости по заданию)
Private Sub UserForm_Initialize()
Label2.Visible = False
Label3.Visible = False
End Sub