Вычисление суммы, произведения и количества элементов в одномерном массиве
Вывод массива
Для распечатки полученного массива на рабочий лист Excel используется следующая конструкция:
For i = 1 To n
Cells(k, i) = A(i) ‘ вывод массива в ячейки электронной таблицы
Next i ‘ k – номер строки для заполнения ячеек.
Вместо переменной k можно использовать конкретное значение, например 3, тогда массив распечатается в третьей строке рабочего листа.
После заполнения ячеек их содержимое можно посмотреть, свернув окно программного кода при помощи кнопки “Свернуть” или переключившись в окно Excel с помощью соответствующей кнопки на панели задач.
Вычисление суммы, произведения и количества элементов в одномерных массивах производится обязательно в цикле, перед которым сумма приравнивается к нулю, произведение – к единице, количество – к нулю.
Например, в одномерном массиве, состоящем из пяти элементов, для вычисления суммы следует записать следующее:
sum = 0
For i = 1 To 5
sum = sum + A(i)
Next i
MsgBox (sum)
Для вычисления произведения:
pr = 1
For i = 1 To 5
pr = pr * A(i)
Next i
MsgBox (pr)
Для вычисления количества:
kol = 0
For i = 1 To 5
kol = kol + 1
Next i
MsgBox (kol)
Если необходимо вычислить сумму, произведение или количество элементов массива, удовлетворяющих некоторому условию, то в цикле следует записать условный оператор, в котором проверяется это условие.
Пример
Задан целочисленный массив А, состоящий из N элементов. Вычислить среднее арифметическое четных элементов и среднее геометрическое нечетных элементов.
Программный код
Option Explicit
Sub PR16()
Dim i As Integer, S As Integer
Dim K1 As Integer, K2 As Integer, N As Integer
Dim PR As Double, SA As Double, SG As Double
Dim A(50) As Integer
N = Val(InputBox("Введите N"))
S = 0: PR = 1: K1 = 0: K2 = 0
For i = 1 To N
A(i) = Cells(1, i)
Next i
For i = 1 To N
If A(i) mod 2 = 0 Then
S = S + A(i) ‘ вычисление суммы и
K1 = K1 + 1 ‘ количества четных элементов
End If
If A(i) mod 2 < > 0 Then
PR = PR * A(i) ‘ вычисление произведения и
K2 = K2 +1 ‘ количества нечетных элементов
End If
Next i
MsgBox("S=" & S & " K1=" & K1)
MsgBox("PR=" & PR & " K2=" & K2)
If K1 < > 0 Then
SA = S / K1 ‘ вычисление среднего арифметического
MsgBox("SA=" & SA)
Else
MsgBox("четных элементов нет")
End If
If K2 < > 0 And PR>0 Then
SG = PR ^ (1 / K2) ‘ вычисление среднего геометрического
MsgBox("SG=" & SG)
Else
MsgBox("нечетных элементов нет")
End If
End Sub
При вычислении минимального или максимального элементов в одномерном массиве должны выполняться следующие условия:
Y(i), если Y(i) > Max;
Max =
Max, если Y(i) £ Max.
Y(i), если Y(i) < Min;
Min =
Min, если Y(i) ³ Min.
За первоначальное значение максимального элемента можно принять очень маленькое число или первый элемент массива, а за первоначальное значение минимального элемента – очень большое число или первый элемент массива, т.е., например, если массив состоит из целых чисел, то
Max = – 32000 или Max = Y(1),
Min = 32000 или Min = Y(1).
Пример 1
Прочитать с рабочего листа Excel одномерный массив. Вычислить минимальный и максимальный элементы этого массива и поменять их местами. Новый массив поместить на тот же лист ниже первого. Минимальный и максимальный элементы также напечатать на рабочем листе.
Программный код
Sub PR17()
Dim A(10) As Integer
Dim i As Integer, R As Integer
Dim Min As Integer, Max As Integer, IMin As Integer, IMax As Integer
For i = 1 To 10
A(i) = Cells(1, i) ‘ ввод массива
Next i
Min = 32000: Max = –32000
For i = 1 To 10
If A(i) > Max Then
Max = A(i) ‘ вычисление максимума
IMax = i ‘ и его номера
End If
If A(i) < Min Then
Min = A(i) ‘ вычисление минимума
IMin = i ‘ и его номера
End If
Next i
Cells(2, 1) = "Max="
Cells(2, 2) = Max
Cells(2, 4) = "IMax"
Cells(2, 5) = IMax
Cells(3, 1) = "Min="
Cells(3, 2) = Min
Cells(3, 4) = "IMin"
Cells(3, 5) = IMin
R = A(IMax) ‘ меняем местами
A(IMax) = A(IMin) ‘ максимальный и
A(IMin) = R ‘ минимальный элементы
For i = 1 To 10
Cells(5, i) = A(i) ‘ вывод массива
Next i
End Sub
В результате работы этой программы на рабочем листе Excel появятся следующие данные (рис. 5).
Рис. 5. Вычисление минимального и максимального элементов массива
Пример 2
Задан одномерный массив Х(N). Вычислить максимальный из отрицательных элементов этого массива.
Программный код
Sub PR18()
Dim Х(100) As Integer
Dim i As Integer, N As Integer, Max As Integer
N = Val(InpurBox(“Введите N”))
For i = 1 To 10
Cells(1, i) = Int(Rnd * 100 – 50)
X(i) = Cells(1, i)
Next i
Max = –32000
For i = 1 To 10
If X(i) > Max And X(i) < 0 Then Max = X(i)
Next i
MsgBox(“Max=” & Max)
End Sub