Загрузка данных


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