Процедура “очищения” списка значений при нажатии на кнопку “ Очистить ”:
Private Sub CommandButton2_Click()
ListBox1.Clear
End Sub
Процедура выполнения вычислений в зависимости от значения переключателей при нажатии на кнопку “Вычислить”:
Private Sub CommandButton3_Click()
Dim i As Integer, k As Integer
Dim b(0 To N - 1) As Integer
k = 0
‘выход из процедуры, если нет выделенных элементов
If ListBox1.ListIndex = 0 Then Exit Sub
‘формирование нового массива из выделенных элементов
'списка
For i = 0 To N - 1
If ListBox1.Selected(i) = True Then
b(k) = A(i)
k = k + 1
End If
Next i
‘k – количество выделенных элементов
'Организация вычислений в зависимости от переключателей
‘проверка выбран ли переключатель: количество выбранных элементов
If Frame1.OptionButton1.Value = True Then
TextBox1.Text = CStr(k)
End if
‘проверка выбран ли переключатель: среднее значение
If Frame1.OptionButton2.Value = True Then
TextBox1.Text = CStr(avr(b, k))
End if
‘проверка выбран ли переключатель: максим. значение
If Frame1.OptionButton3.Value = True Then
TextBox1.Text = CStr(min_max(0, b, k))
End if
‘проверка выбран ли переключатель: миним. значение
If Frame1.OptionButton4.Value = True Then
|
|
TextBox1.Text = CStr(min_max(1, b, k))
End if
End Sub
Функция min_max() определения минимального или максимального значения в массиве b (), размерности N, в зависимости от параметра p (при p = 1 функция возвращает максимальное значение, в противном случае минимум):
Public Function min_max(p As Byte, b() As Integer, N_ As Integer) As Integer
Dim min As Integer
Dim max As Integer
Dim i As Integer
min = 0: max = 0
For i = 1 To N - 1
If b(i) > b(max) Then max = i
If (b(i) < b(min)) Then min = i
Next i
If p = 1 Then min_max = b(max) Else min_max = b(min)
End Function
Функция avr() определения среднего значения в массиве выделенных элементов b (), размерности N:
Public Function avr(b() As Integer, N As Integer) As_ Double
Dim i As Integer
Dim s As Integer
s = 0
For i = 0 To N - 1
s = s + b(i)
Next i
avr = s / N
End Function
Процедура закрытия формы при нажатии на кнопку “ Выход ”:
Private Sub CommandButton4_Click()
UserForm2.Hide
End Sub
Процедура инициализации пользовательской формы:
Private Sub UserForm_Initialize()
‘Установить значение первого переключателя на форме
OptionButton1.Value = True
'Установить для списка свойство для выделения
'нескольких значений
ListBox1.MultiSelect = 1
End Sub