Массивы

Массивы



Понятие "массив" в программировании является некоторое упорядоченное множество переменных, доступ к которым осуществляется по имени и индексу(ам). Чтобы легче представить возьмём примеры из жизни. Например обычная таблица являющаяся двумерным массивом, доступ к ячейкам которой осуществляется с помощью индексов по горизонтальным и вертикальным осям, отсчёт от 0. Также в качестве примера можно привести игры: шахматы, морской бой. В высшей математике аналог "матрица". Если в таблице один столбец, то горизонтальная ось отсчёта теряет смысл и это является аналогом одномерного массива. В большинстве случаев приходится сталкиваться только с одномерными и двумерными массивами.


Одномерный массив

В ниже приведённом примере создаётся массив из трёх ячеек. Индекс 0 соответствует первому элементу массива, индекс 1 - второму элементу массива, 2 - третьему. Попытка получить значение ячейки с индексом 3 приведёт к ошибке. Индекс последнего элемента на единицу меньше, чем число элементов в массиве. В скриптах можно встретить обозначение одномерного массива как 1D, например $sArray1D.

ИндексыЗначения
0$Array[0]
1$Array[1]
2$Array[2]

Local $Array[2] ; объявление массива
Local $Array[2] = ['Элемент1', 'Элемент2'] ; объявление массива с присвоением данных
Local $Array[2] = ['Элемент1'] ; объявляя массив можно присвоить не все элементы
$Array[1] = 'Элемент2' ; присвоение данных ячейке массива
MsgBox(0, 'Сообщение', $Array[1]) ; просмотр ячейки массива


Двумерный массив

Двумерный массив можно представить как обычную таблицу, шахматную доску, морской бой. Также как и в предыдущем примере при объявлении массива с присвоением данных необязательно указывать значения всех ячеек. В скриптах можно встретить обозначение двумерного массива как 2D, например $sArray2D.

012
0$Array[0][0]$Array[0][1]$Array[0][2]
1$Array[1][0]$Array[1][1]$Array[1][2]
2$Array[2][0]$Array[2][1]$Array[2][2]

Local $Array[3][2] ; объявление массива без присвоения данных
; объявление массива с присвоением данных

Local $Array[3][2] = [[1, 2],[3, 4],[5, 6]] ; 3 строки, 2 колонки
Local $Array[2][3] = [[1, 2, 3],[4, 5, 6]] ; 2 строки, 3 колонки
$Array[1][2] = 15 ; присвоение данных ячейке массива
MsgBox(0, 'Сообщение', $Array[1][2]) ; просмотр ячейки массива


Трёхмерный массив и более

Размерность массива три и более используется намного реже, поэтому рассмотрим их в одном разделе. Трёхмерный массив можно представить как куб, в котором ячейки располагаются не только в плоскости, но и в объёме. Аналогом является обычная трёхмерная система координат и доступ достигается с помощью трёх индексов (x, y, z). Четырёх-мерный и более визуально представить невозможно, но математически добавление измерения это просто добавление вектора измерения, например время, температура и т.д.

Local $Array[3][2][5] ; объявление массива без присвоения данных
; объявление массива с присвоением данных
; количество ячеек в массиве равно произведению размерностей (3*2*4=24)

Local $Array[3][2][4] = [[[1,2,3,4], [5,6,7,8]],[[9,10,11,12], [13,14,15,16]],[[17,18,19,20], [21,22,23,24]]]
$Array[2][1][3] = 15 ; присвоение данных ячейке массива
MsgBox(0, 'Сообщение', $Array[2][1][3]) ; просмотр ячейки массива
Local $Array[3][2][5] ; трёхмерный массив
Local $Array[3][2][5][1] ; четырёхмерный массив
Local $Array[3][2][5][1][7] ; пятимерный массив
; и т.д.