Типы и объявление массивов
Массив является набором переменных одного типа, объединенных одним именем. Различают массивы одномерные, двумерные, трехмерные и т.д., а также различных типов: числовые, строковые и т.д. Объявление массива производится аналогично объявлению переменных, необходимо только дополнительно указать диапазон изменения индексов.
Пример объявления одномерного массива чисел целого типа:
Dim X(1 To 100) As Integer
Здесь 1 - нижняя граница индекса, 100 - верхняя граница индекса.
Пример объявления двумерного массива чисел целого типа:
Dim t (1 To 3, 1 To 4) As Integer
Границы индексов в круглых скобках тоже могут быть разными, например:
Dim a(20 To 60) As Integer
Здесь под числа отводится 41 ячейка. Еще пример:
Dim b(0 To 9, -20 To 30) As Integer
Здесь под числа отводится 10∙51 = 510 ячеек.
Если нижняя граница индекса массива равна нулю, то можно вместо
Dim f(0 To 9) As Integer
писать
Dim f(9) As Integer
— в Visual Basic нижней границей индекса всех массивов по умолчанию считается число 0.
Нередко размер массива (т.е. количество хранящихся в нем элементов) не может быть определен заранее. В этом случае следует объявить пустой массив, не содержащий ни одного элемента, и затем добавлять в него элементы по мере надобности. Такой массив будет считаться динамическим и его размер будет определен в процессе выполнения программы. Объявление динамического массива выглядит следующим образом:
Dim Y() As Integer
Затем в массив необходимо добавить элементы, в которых будут храниться значения. Для этого используется оператор ReDim, который может встречаться только в процедурах (подпрограммах и функциях):
ReDim Y(5)
Созданным элементам следует присвоить значения. Позднее количество элементов массива снова можно изменить:
ReDim Y(7)
Заметим, что после выполнения этого оператора все значения, хранящиеся в массиве, теряются. Чтобы сохранить их, следует пользоваться ключевым словом Preserve:
ReDim Preserve Y(7)
Заполнение массива с клавиатуры
Для начала работы с массивом его необходимо предварительно заполнить, т.е. присвоить входящим в него элементам определенные значения. Заполнение массива можно производить различными способами.
Первый способ состоит в том, что значения элементов массива вводятся пользователем с клавиатуры, например с помощью функции InputBox. Тогда для заполнения числового массива dblA(bytI) десятичными числами двойной точности можно использовать следующую событийную процедуру, предварительно расположив на форме соответствующий элемент управления, например кнопку Command1:
Dim dblA(1 To 30) As Double, bytI As Byte
Sub Command1_Click()
For bytI = 1 To 30
dblA(bytI) = InputBox (“Введите число”, _
“Заполнение массива”)
Next bytI
End Sub
Здесь надо дать определения событийного программирования.
Заполнение массива с помощью оператора присваивания
Второй способ заполнения массива состоит в использовании оператора присваивания. Числовой массив заполняется случайными числами, например целыми числами в интервале от 1 до 100.
Для генерации псевдослучайной последовательности из интервала 0 ≤ X < 1 с равномерным распределением используется функция Rnd (без аргументов). В этом случае последовательность каждый раз повторяется. Для того чтобы генерировались различающиеся между собой последовательности, можно использовать оператор Randomize.
Чтобы получить последовательность случайных чисел в заданном интервале A ≤ X < B, необходимо использовать следующее выражение:
(B-A)* Rnd + A
Для генерации целочисленной последовательности случайных чисел из интервала 0 ≤ X < 100 можно использовать функцию выделения целой части числа:
Int(Rnd * 100)
Тогда событийная процедура заполнения массива может иметь вид:
Dim bytA(1 To 100), bytI As Byte
Sub Command1_Click()
For bytI = 1 To 100
bytA(bytI) = Int(Rnd * 100)
Next bytI
End Sub