Как и обычные переменные, массивы должны быть объявлены. Для определения массива используется оператор Dim:
При таком описании массива его элементы индексируются (т. е. нумеруются), начиная с нуля.
Чтобы задать определенную размерность массива можно использовать зарезервированное слово To.
Элементы массива индексируются с того номера, с которого явно указан интервал изменения нижней и верхней границы номеров элементов массива:
Dim A (1 To 100) As Integer
Перед обработкой массива его необходимо заполнить (ввести).
Массив можно считывать с рабочего листа Excel, в который числа заносятся вручную, или задать при
помощи генератора случайных
чисел.
1-й с п о с о б. В ячейки электронной таблицы рабочего листа Excel введем числа (рис. 9.2), откроем окно программного кода и запишем в него программу, которая считывает данный массив чисел.
Option Explicit
Sub PR1 ()
Dim A(6) As Integer
Dim i As Integer
For i = 1 To 6
A(i) = Cells(1, i) ‘массив заполняется
Next i ‘числами с рабочего листа Excel
2-й с п о с о б. Массив можно заполнить с помощью генератора случайных чисел. Если требуется получить последовательность случайных целых чисел с равномерным законом распределения на интервале (a; b), то используется выражение: х = Int((b-a)*Rnd+a).
Фрагмент программы:
Randomize ‘инициализация генератора случайных чисел
For i = 1 To 10
Cells(1, i) = Int(Rnd * 10 – 5) ‘заполнение строки случайными числами от –5 до 5
A(i) = Cells(1, i) ‘ заполнение массива
Next i
В среде VBA удобно пользоваться различными рабочими листами в одной программе. Для установки нужного рабочего листа используется команда Worksheets(Имя листа).Select, Например:
Worksheets("Лист1").Select – переход на рабочий лист с именем "Лист1".
Пример 1. Вычислить среднее арифметическое значение и количество четных элементов массива А, состоящего из N целых чисел, а также среднее геометрическое значение и количество нечетных элементов этого же массива. Массив считать с рабочего листа Excel.
Вычисление суммы, произведения и количества элементов в одномерных массивах производится в цикле.
Программный код:
Option Explicit
Sub PR1 ( )
Dim i As Integer, S As Integer, K1, K2, N As Integer
Dim P As Double, SA As Double, SG As Double
Dim A(50) As Integer
N = Val(InputBox("Введите N"))
S = 0 : P = 1: K1 = 0: K2 = 0 ‘ начальные значения
For i = 1 To N
A(i) = Cells(1, i) ‘ ввод массива с рабочего листа Excel
Next i
For i = 1 To N
If A(i) mod 2 = 0 Then
S = S + A(i) ‘ вычисление суммы и
K1 = K1 + 1 ‘ количества четных элементов
Else
P = P * A(i) ‘ вычисление произведения
K2 = K2 +1 ‘ количества нечетных элементов
End If
Next i
MsgBox("S=" & S & " K1=" & K1)
MsgBox("PR=" & PR & " K2=" & K2)
End Sub
П р и м е р 2. Прочитать с рабочего листа Excel одномерный массив Y. Найти минимальный и максимальный элементы этого массива и поменять их местами. Новый массив поместить на тот же рабочий лист ниже первого массива. Минимальный и максимальный элементы также напечатать на этом рабо-чем листе.
За начальное значение максимального и минимального элемента принять первый элемент массива, например: Max = Y(1); Min = Y(1).
Алгоритм расчета максимального и минимального элемента массива показан на рис. 9.4.
Программа вычисления минимального и максимального элемента представлена процедурой PR2.
Программный код:
Option Explicit
Sub PR2 ()
Dim A (10) As Integer
Dim I As Integer, R As Integer
Dim Min As Integer, Max As Integer
Dim imin As Integer, imax As Integer
For i = 1 To 10
A(i) = Cells(1, i) ‘ ввод массива
Next i
Min = A(1): Max = a(1)
For i = 1 To 10
If A(i) > Max Then
Max = A(i): k = i ‘ вычисление максимума и его номера
End If
If A(i) < Min Then
Min = A(i): n = 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(k) ‘ меняем местами
A(k) = A(n): A(n) = R ‘ максимальный и минимальный элементы
For i = 1 To 10
Cells(5, i) = A(i) ‘ вывод нового массива
Next i
End Sub
Результаты вычисления минимального и максимального элементов массива представлены на листе Excel (рис. 9.5).
9.2. Индивидуальные задания
Задание 1. Разработать алгоритм и программу обработки одномерных массивов в соответствии с индивидуальным заданием (табл. 9.1). Ввод элементов массива выполнить с рабочего листа Excel. Напечатать исходный и результирующий массивы в две строки.
Таблица 9.1
Варианты индивидуальных заданий с использованием одномерного массива
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.