Вычисление минимального и максимального элементов в одномерных массивах

Вычисление суммы, произведения и количества элементов в одномерном массиве

Вывод массива

Для распечатки полученного массива на рабочий лист 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