Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Массивы. Массив — это поименованная область памяти, доступ к отдельным частям которой осуществляется по общему имени и индексу соответствующей части



Массив — это поименованная область памяти, доступ к отдельным частям которой осуществляется по общему имени и индексу соответствующей части. Все части (элементы) массива имеют один и тот же тип, в качестве которого может выступать любой из стандартных или нестандартных типов, описанных к моменту объявления массива. В частности, элементы массива также могут являться массивами. Такие структуры называются многомерными.

Описание массива производится в разделе описания типов данных (после ключевого слова Туре) и выглядит следующим образом:

<Название массива> = Array [<Нижний индекс>..<Верхний индекс>]

of <Тип элементов>;

Например:

Program DeclareArrayTypes1;

Туре {Начало раздела описания типов данных}

MyArray = Array [5..150] of Integer;

{Описание типа данных — массива с именем MyArray, состоящего

из 146-ти элементов, пронумерованных от 5-ти до 150-ти, каждый

из которых имеет тип Integer}

Begin

End.

С момента такого описания тип MyArray может использоваться наравне с остальными типами данных, известными компилятору, например, для описания двухмерного массива:

Program DeclareArrayTypes2;

Туре {Начало раздела описания типов данных}

MyArray = Array [5..150] of Integer;

{Описание типа данных — массива с именем MyArray, состоящего

из 146-ти элементов, пронумерованных от 5-ти до 150-ти, каждый

из которых имеет тип Integer}

MyArray2D = Array [1..10] of MyArray;

{Описание типа данных — массива с именем MyArray2D, состоящего

из 10-ти элементов, пронумерованных от 1 до 10-ти, каждый из

которых представляет собой массив типа MyArray}

Begin

...

End.

Многомерный массив можно также описать без использования вспомогательных типов, просто указав в квадратных скобках через запятую пределы изменения индексов для каждого измерения массива:

Туре

MyArray2D = Array [1..10, 5..150] of Integer;

{Описание двухмерного массива}

Описание переменной, представляющей собой массив, происходит по обычным правилам описания переменных:

Туре

MyArray2D = Array [1..10, 5..150] of Integer; {Описание двухмерного

массива}

Var

Array2D: MyArray2D; {Описание переменной-массива}

Для обращения к элементу массива-переменной, ее индекс (индексы в случае многомерных массивов) указываются в квадратных скобках после имени переменной:

Program UsingArrays;

Type

MyArray2D = Array [1..10, 5..150] of Integer; {Описание двухмерного

массива}.

Var

Array2D: MyArray2D; {Описание переменной-массива}

Begin

Array2D [1, 6]:= 18; {Присвоение значение элементу массива с

индексами 1, 6}

End.

Обратите внимание, что максимально возможный размер массивов в Delphi увеличен по сравнению с Pascal, и может достигать 2 гигабайт вместо 64 килобайт.

Заметим, что для массивов одного и того же типа, как и для записей, определена операция присвоения, выполняемая копированием значений элементов одного массива в другой. Также доступна операция присвоения для отдельных элементов массивов. Сравнение массивов в целом невозможно и вызывает ошибку компиляции. Однако это доступно динамическим массивам.

Переменную-массив можно описать и без предварительного создания соответствующего типа данных, прямо в разделе описания переменных:

Var

MyArray2D: Array [1..10, 5..150] of Integer;

{Описание переменной — двухмерного массива

целочисленных элементов}

Необходимо отметить, что при внешне эквивалентном описании два массива не будут считаться принадлежащими к одному типу данных, если это не указано явно:

Туре

ArrType = Array [1..10] of Integer;

{Описание типа данных — массива целочисленных элементов}

Var

Al = Array [1..10] of Integer;

{Описание переменной-массива целочисленных элементов}

А2 = Array [1..10] of Integer;

{Описание переменной-массива целочисленных элементов,

полностью идентичной А1 }

A3: АrrТуре; {Описание переменной-массива целочисленных

элементов}

А4: АrrТуре;

Begin

A3:= А4; {Операция допустима, так как обе переменные имеют один

и тот же тип — АrrТуре}

А1:= А2; {Операция не допустима, так как обе переменные имеют не

один и тот же тип данных, а лишь похожие по структуре

типы}

В рассмотренном примере все четыре используемые переменные являются одномерными массивами целочисленных элементов, проиндексированных от 1 до 10, однако переменные A3 и А4 совместимы между собой, так как при их описании явно указан один и тот же тип, а переменные А1 и А2 не совместимы ни между собой, ни с переменными A3 и А4. Соответственно при попытке компиляции такого фрагмента программы будет выдана ошибка "Incompatible types” - "Несовместимость типов”.

Однако если бы переменные А1 и А2 были описаны в одной строке, то их типы считались бы идентичными:

Var

Al, A2 = Array [1..10] of Integer; {Описание двух переменных-массивов

целочисленных элементов}

Begin

{Операция допустима}

Al:= А2;

End.





Дата публикования: 2014-11-02; Прочитано: 431 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...