Головна

масиви

  1.  Глава IV Одномірні масиви
  2.  двовимірні масиви
  3.  динамічні масиви
  4.  динамічні масиви
  5.  динамічні масиви
  6.  Дискові масиви RAID
  7.  Дискові масиви і рівні RAID

Масив - це пойменована область пам'яті, доступ до окремих частин якої здійснюється за загальним імені та індексу відповідної частини. Всі частини (елементи) масиву мають один і той же тип, в якості якого може виступати будь-який зі стандартних або нестандартних типів, описаних до моменту оголошення масиву. Зокрема, елементи масиву також можуть бути масивами. Такі структури називаються багатовимірними.

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

Назва масиву = 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.




 Вступ |  Основні елементи програми і алфавіт мови |  Основна частина програми |  числові типи |  Строкові типи даних |  опис констант |  Опис нестандартних типів даних |  Інтервальні типи даних |  Перелічуваних типи даних |  динамічні масиви |

© 2016-2022  um.co.ua - учбові матеріали та реферати