Структурований тип даних - це безліч елементів даних (компонент) з одним іменем. На відміну від даних скалярного типу, які можуть приймати одне значення, дані структурованого типу можуть приймати безліч значень одного типу (регулярний тип, наприклад, масиви), або різних типів (комбіновані типи, наприклад, запису).
Можливість обробки структурованих типів даних є великою перевагою мови ТР і робить його універсальним мовою програмування.
Регулярні типи даних. Масиви
Масив - це впорядковане, обмежена кількість однотипних елементів, об'єднаних загальною назвою. Тип компонент (елементів) називається базовою та м.б. будь-яким крім файлового. Для позначення елементів масиву використовується мінлива з індексами.
Наприклад: A[25], B[5, 8], X[i], Y[i, j], R[n+1].
Розмір масиву (довжина) - кількість елементів масиву.
Розмірність масиву - число індексів в масиві.
Індекс визначає положення елемента в масиві. Як індексу м.б. використано вираз (індексне), змінну або константу (окремий випадок вирази). Як індексів м.б. будь-який порядковий тип крім Longint. Тип індексів повинні скалярний, впорядкованим і кінцевим. Найчастіше використовуються індекси інтервального типу, при цьому вони м.б. негативними.
Всі компоненти масиву однаково доступні і можуть вибиратися у довільному порядку.
У програмі масиви повинні бути описані одним із двох способів:
- З використанням розділу описания типів:
Type T = array[T1] of T2;
Var A, B, C :T;
де:
T - ім'я типу; {регулярний тип}
тип індекса;
T2 - тип компонент. {базовий тип}
Тип, визначений за допомогою конструкції array . . of називається регулярним.
Наприклад:
Type
vec_r = array[1. .n] of real;
vec1_i = array[1. .n] of integer;
vec1_l = array[False. .True] of Boolean;
vec1_S = array[‘A’1. . ‘Z’] of char;
Var
A, B :vec_r;
N, K :vec_i;
V, W :vec_l;
R, S :vec_s;
- Без використання розділу описания типів:
Var A, B, C : = array[T1] of T2;
Наприклад:
Var
A, B : array[1. .n] of real;
N, K : array[1. .n] of integer;
V, W : array[False. .True] of Boolean;
R, S : array[‘A’1. . ‘Z’] of char;
Перший спосіб є більш кращим, хоча він і подовжує розмір описів, але програма стає більш ясною логічно. Використання розділу Type свідчить про хорошому стилі програмування
До компонентів масиву застосовні операції, процедури та функції, допустимі для цього базового типу.
Всі дії з масивами виконуються в циклі, за винятком присвоювання цілком елементів масиву, іншого.
Наприклад: X:=Y.