
Действия над массивами
Для работы с массивом как единым целым используется идентификатор массива без указания индекса в круглых скобках. Массив может участвовать в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, то есть иметь одинаковые типы индексов и одинаковые типы компонентов.
Пример 1.
Если массивы А и В описаны как
Dim A (1 To 2) As Byte, B (1 To 2) As Byte,
то применение к ним допустимой операции даст следующий результат:
Выражение |
Результат |
A = B |
Все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны |
Пример 2.
Значение одного массива присваивается другому поэлементно в операторе цикла.
Sub primer ()
Dim A (1 To 2) As Byte, B (1 To 2) As Byte
Dim I As Byte
B(1) = 2
B(2) = 4
For I = 1 To 2
A(i) = B(i)
Debug.Print A(i), B(i)
Next i
End Sub
Действия над элементами массива
После объявления массива каждый его элемент можно обрабатывать, указав идентификатор (имя) массива и индекс элемента в круглых скобках.
Пример 1.
Запись
Mas (2), VectorZ (10)
позволяет обратиться к третьему элементу массива Mas и одиннадцатому элементу массива VectorZ.
Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах параметрических и итерационных циклов, входить в качестве параметров в операторы ввода и вывода; им можно присваивать любые значения, соответствующие их типу.
Формирование массива
1 способ.
Формирование массива в программе определяется поэлементно с помощью последовательности операторов.
Пример 1.
Dim B (1 To 2, 1 To 3) As Single
B (1,1) = 2 : B (1,2) = 4 : B (1,3) = 6
B (2,1) = 1 : B (2,2) = 6 : B (2,3) = 2
2 способ.
Формирование массива с помощью датчика случайных чисел.
Пример 2.
Sub primer ()
Dim A(1 To 12) As Variant
Randomize
For i = 1 To 10
A(i) = Rnd (40)
Debug.Print A(i)
Next i
End Sub
3 способ
Инициализация элементов массива оператором цикла.
Наиболее эффективно эта операция выполняется с помощью оператора For.
Пример 3.
Dim M (1 To 9, 1 To 9) As Integer
Dim i As Integer
Dim j As Integer
For i = 1 To 9
For j = 1 To 9
M(i, j) = i * j
Next j
Next i
4 способ
Использование функции Array (массив) для задания одномерного массива
Удобным способом определения одномерных массивов является функция Array, преобразующая список элементов, разделенных запятыми, в вектор из этих значений, и присваивающая их переменной типа Variant.
Пример 4.
Sub ShowArray ()
Dim A As Variant
A = Array (10, 20, 30)
Debug.Print A(0) ‘Отобразится: 10
Debug.Print A(2) ‘Отобразится: 30
End Sub
Использование функции Array (массив) для задания многомерного массива
Функция Array позволяет задавать не только одномерные, но и многомерные массивы. Это обеспечивается использованием вложенной конструкции с функциями Array.
Пример 5.
Option Base 1
Sub MultiDim ()
Dim A As Variant
A = Array (Array(“Санкт-Петербург“, “Россия“), Array (“Киев“, “Украина“))
Debug.Print A (1) (1) ‘Отобразится: Санкт-Петербург
Debug.Print A (1) (2) ‘Отобразится: Россия
End Sub
Функция Array позволяет задавать не просто многомерные массивы, а массивы, у которых строки имеют различное число компонентов.
Пример 6.
Private Sub VarArray ()
Dim M As Variant
M = Array(Array(1,2), Array (3,4,5))
Debug.Print M (0) (0), M (1) (2) ‘Отобразится: 1 5
End Sub