Массивы в Delphi

Массивом называется упорядоченная совокупность однотипных элементов, у которых общее имя. Массивы в языке 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;

Итог: в данной статье мы рассмотрели массивы.

 

 

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *