Відрізок (діапазон значень) будь-якого порядкового типу може бути визначений як інтервальний (обмежений) тип. Відрізок задається діапазоном від мінімального до максимального значення констант, розділених двома крапками. В якості констант можуть бути використані константи, що належать до цілого, символьного, логічного або перелічуваного типу. Скалярний тип, на якому будується відрізок, називається базовим типом. Приклади відрізків:
1 .. 10
-15 .. 25
'A' .. 'z'
Мінімальне і максимальне значення констант називаються нижньою і верхньою межею відрізка, що визначає інтервальний тип. Нижня межа повинна бути менше верхньої.
Над змінними, що відносяться до інтервального типу, можуть виконуватися всі операції і застосовуватися всі стандартні функції, які допускаються до використання для відповідного базового типу.
Масиви
Масиви - це сукупності однотипних елементів. Вони мають наступні характеристики:
- кожен компонент масиву може бути явно позначений і до нього є прямий доступ;
- число компонентів масиву визначається при його описі і надалі не міняється.
Для позначення компоненту масиву використовується ім'я змінної-масиву і так звані індекси, які вказують на певний елемент. Тип індексу може бути тільки порядковим (крім longint). Найчастіше використовується інтервальний тип (діапазон).
Опис типу масиву задається наступним чином:
type ім'я типу = array[ список індексів ] of тип Тут ім'я типу - правильний ідентифікатор; ,список індексів - список одного або декількох індексних типів, розділених комами; тип - будь-який тип даних.
Вводити і виводити масиви можна тільки по одному елементу за раз.
Приклад 1. Введення і виведення одновимірного масиву.
const n = 5;type mas = array[1..n] of integer;var a: mas; i: byte;begin writeln('введіть елементи масиву'); for i:=1 to n do readln(a[i]); writeln('вивід елементів масиву:'); for i:=1 to n do write(a[i]:5);end. Визначити змінну як масив можна і безпосередньо при її описі, без попереднього опису типу масиву, наприклад:
var a,b,c: array[1..10] of integer;
Якщо масиви a і b описані як:
var a = array[1 .. 5] of integer; b = array[1 .. 5] of integer; то змінні a і b будуть розрізнятись як змінні різних типів. Для забезпечення сумісності описуйте змінні через попередній опис типу.
Якщо типи масивів ідентичні, то в програмі один масив може бути привласнений іншим. У цьому випадку значення всіх змінних одного масиву буде надано відповідним елементам другого масиву.
Разом з тим, над масивами не визначені операції відношення. Порівнювати можна лише окремі елементи масивів.
Так як тип, що йде за ключовим словом of в описі масиву, - будь-який тип Турбо Паскаль, то він може бути і іншим масивом. Наприклад:
type mas = array[1 .. 5] of array[1 .. 10] of integer; Такий запис можна замінити більш компактним:
type mas = array [1 .. 5, 1 .. 10] of integer; Таким чином виникає поняття багатовимірного масиву. Глибина вкладеності масивів довільна, тому кількість елементів у списку індексних типів (розмірність масиву) не обмежена, однак не може бути більше 65520 байт.
Робота з багатовимірними масивами майже завжди пов'язана з організацією вкладених циклів. Таким чином, щоб заповнити двовимірний масив (матрицю) випадковими числами, використовують конструкцію виду:
for i:=1 to m do
for j:=1 to n do a[i,j]:=random(10);
Для "гарного" виводу матриці на екран використовуйте такий цикл:
for i:=1 to m do begin for j:=1 to n do write(a[i,j]:5); writeln;end;