Массивом называется упорядоченная совокупность однотипных элементов, у которых общее имя. Массивы в языке Delphi во многом схожи с аналогичными типами данных в других языках программирования. В состав элементов массива могут входить данные любых типов, в том числе и структурированные. Любой элемент массива определяется именем массива и индексом (индекс может быть не один, тогда данный массив будет многомерным). Количество индексов определяет размерность массива - одномерный, двумерный ...
В качестве индексных типов в языке Delphi используются порядковые типы. Обычно используется тип Integer.
Массивы бывают динамические и статические. Статический массив является таким массивом размерность которого определена еще до компиляции программы. Описание статического типа будет в таком формате:
<Имя> = array [ <список инд.> ] of <тип>;
<Имя> - правильный идентификатор,
array of - зарезервированные слова (по русски - массив из),
<список инд.> - список, состоящий из одного или нескольких индексных типов. Которые должны разделяться запятой и находиться в квадратных скобках.
<тип> - любой тип языка Delphi.
type singltipe = array[1..10, 1..10] of Single;
var
arr1, arr2 : singltipe;
Мы создали две переменные arr1 и arr2, определив в начале тип массива. Задать переменную как массив можно и без предварительного описания типа массива, например:
var
y, arr1 : array[1..10, 1..10] of Single;
Динамический массив является таким массивом, для которого при объявлении задается только тип элементов, самих элементов в нем нет. Размер массива определяется во время выполнения программы с помощью стандартной процедуры SetLength(). В качестве первого параметра задается имя переменной, второй число элементов в массиве. В динамическом массиве отсчет элементов начинается всегда с нуля. Если задаем новое значение числа элементов и оно будет больше старого, то новые элементы окажутся в конце массива и будут не определены их значения. Если новое число элементов будет меньше, то последние элементы будут потеряны.
Описание динамического типа будет в таком формате:
<Имя> = array of <тип элеменов>;
Пример:
type TMyType : array of char;
var n: TMyType ;
m: array of real;
begin
SetLength(n,5);
SetLength(m,16);
....
Для освобождения памяти выделенной динамическому массиву и сделать его длину нулевой, необходимо нужной переменной присвоить значение nil. В дальнейшим длину можно в программе менять неоднократно.
Для работы с элементами массива указывается соответствующая переменная вместе со следующим за ним в квадратных скобках индексом. Значение индекса должно входить в диапазон, заданный при описании массива.
m[1] := 4;
n[2, 4] := 7;
Действия с массивами производятся поэлементно. Такая обработка довольно часто выполняется с помощью циклов. Массив, как единый объект, может использоваться только в операциях отношения и в целом инструкциях присваивания, при этом необходимо что бы массивы были идентичны по своей структуре, иметь одинаковые типы индексов и одинаковые типы элементов.
Type myTip = array [5..60];
var m1, m2 : myTip;
....// задание значений
m1:=m2;
Итог: в данной статье мы рассмотрели массивы.