Type
A = array [T1] of T2;
Тут:
Array, of - службові слова;
Т1 - тип індексу масиву;
Т2 - тип компонент масиву.
Надалі ідентифікатор цього типу може бути використаний в описі змінних.
В якості типу індексу може виступати будь дискретний тип, крім LongInt і обмежених типів, побудованих з типу LongInt, зокрема, припустимі обмежені і перечислимі типи. Елементами масиву можуть бути змінні будь-якого типу. p> Нижче наведені описи різних масивів:
Type
M1 = array [1 .. 100] of real;
M2 = array [Char] of boolean;
Matrix = array [1 .. 10] of array [1 .. 20] of integer;
Database = array [1 .. MaxF] of file of Person;
Var
Vector: M1;
Sym_Table: M2;
Arr1, Arr2: Matrix;
S: array [Red, Yellow, Green] of boolean;
Примітки
1. Число елементів в масиві завжди повинно бути фіксоване. p> 2. Для завдання кількості елементів масиву використовується тип; число елементів визначається кількістю можливих значень зазначеного типу, що відрізняє мова Паскаль від багатьох інших мов, в яких розмір масиву задається або цілим числом (або виразом цілого типу), або діапазоном цілих чисел. Це надає Паскалю додаткову гнучкість, дозволяючи В«нумеруватиВ» елементи масиву не тільки цілими числами, але й значеннями довільного цілого типу. p> 3. В якості елементів масиву можуть виступати значення будь-якого типу; зокрема, ними можуть бути значення будь-яких складових типів, наприклад, масиви:
Var
V2: array [1 .. 10] of array [1 .. 20] of byte;
Таку зміну можна трактувати двояко: як масив, що складається з декількох масивів, або як один двовимірний масив (матрицю). Для скорочення запису в подібних випадках можна використовувати еквівалентну форму визначення регулярних типів, де в квадратних дужках вказується список типів індексів, розділених комами, той же масив можна описати:
Var
V2: array [ 1 .. 10, 1 .. 20] of of byte;
Число індексів у визначенні (тобто розмірність масиву) у мові не обмежується.
4. Турбо Паскаль допускає єдине можливе дію над масивом в цілому: використання його в операторі присвоювання, наприклад:
Vect1: = Vect2;
причому типи обох масивів повинні бути еквівалентні.
Елемент масиву вважається змінної; він може отримувати значення (наприклад, в операторі присвоювання), а також брати участь у виразах, де він представляє значення, поміщене в відповідний елемент даного масиву. Асортимент операцій над елементами масиву повністю визначається типом цих елементів (базовим типом масиву).
Пример:
V2 [i, j]: = V2 [i, j-1] + 1;
Sym_Table [ 'Z']: = Switch and Sym_Table ['a'];
2. Комбіновані типи (записи)
Комбіновані типи, як і регулярні типи, являють собою правило формування складових типів. Об'єкти цього типу називаються записами. На відміну від масивів, записи можуть об'єднувати значення різних типів і тому є, мабуть, найбільш гнучким механізмом побудови даних. p> Запис складається з фіксованого числа компонентів, званих полями запису. Щоб можна було посилатися на той чи інший компонент записи, поля іменуються.
Структура оголошення типу запису така:
<ім'я типу> = RECORD <Список полів> END
Тут:
<ім'я типу> - правильний ідентифікатор;
RECORD, END - зарезервовані слова (запис, кінець);
<список полів> - цей список являє собою послідовність розділів запису, між якими ставиться крапка з комою.
Кожен розділ запису складається з одного або декількох ідентифікаторів полів, відокремлюваних один від одного комами. За ідентифікатором (ідентифікаторами) ставиться двокрапка і опис типу поля (полів). Наприклад:
Type
Birthday = record
day, month: byte;
year: word
end;
Var
a, b: Birthday;
.........
У цьому прикладі тип Birthday (день народження) містить три поля з іменами DAY, MONTH і YEAR (день, місяць, рік); змінні A і B містять записи типу Birthday.
Як видно з прикладу, поширеним випадком вживання запису є необхідність описати атрибути (характеристики) деякого об'єкта, репрезентованої і оброблюваного в програмі. Наприклад, для опису об'єкта "людина" можуть знадобитися такі характеристики:
В· прізвище, ім'я, батькові (символьні масиви або рядка);
В· підлога (перелічувальний тип з двох значень);
В· індекс спеціальності (ціле) і т.д. p> У цьому випадку опис комбінованого типу Person (людина) може виглядати наступним чином:
Type
Person = record
Name, SecondName, SurName: string [20];
Sex: (Male, Female);
Speciality: Word
end;
Маючи в програмі вищенаведене опис, можна визначити змінні даного типу, например:
Var Sasha, Masha, Natas...