1 Альтернатива:
type
ім’я типу діапазон:min..max;
var
список змінних:ім’я типу діапазон;
2 Альтернатива:
var
список змінних:min..max;
Константи min і max, повинні мати тип, що співпадає з порядковим типом (базовим типом) на основі якого утворюється тип діапазон.
Приклад.
type
index=1..10;
var
n:index;
c1: blue..yellow;
m1: Co..Cu;
Описані:
n – змінна типу діапазон index. Це поіменований тип з базовим цілочисельним типом. Змінна n може приймати значення від 1 до 10;
c1 – змінна типу діапазон з базовим типом color, може приймати одне із значень blue, green, yellow;
m1 – змінна типу діапазон з базовим типом metal, може приймати одне із значень Co, Na, Cu.
2. Масиви
Масив – це сукупність фіксованого числа елементів однакового типу.
Для представлення масивів у Turbo Pasсal використовуються дані типу array. Тип елементів масиву може бути довільним з числа типів Turbo Pasсal, крім типу file (цей тип нам не відомий).
Звернення до окремого елемента здійснюється за допомогою індексів. Індекс представляє собою вираз будь-якого порядкового типу. Тип індексу визначає розміри масиву. Розмір масиву – це кількість елементів масиву, задається при описі масиву.
Для опису масивів існує дві альтернативи.
Перша альтернатива:
type
ім'я масиву=array[тип індексy] of тип елементів;
var
список масивів:ім'я масиву;
Друга альтернатива:
var
список масивів:array[тип індексy] of тип елементів;
Перша альтернатива краща, так як дозволяє описувати формальні параметри функцій та процедур.
Приклад.
type
k
5
4
znak=array[1..255] of char;
color=(red, orange, yellow, green, blue, violet);
month=(January, February, March, April, May, June, July,
August, September, October, November,
December);
p3=array[color] of month;
var
a1: array[1..20] of integer;
a2: znak;
a3: P3;
a4: array[1..4] of klass;
Описано:
a1 – масив елементів цілого типу (тип елементів – integer, тип індекса – тип діапазон з базовим типом integer). Значення індексу масива може бути від 1 до 20. Приклади можливих звернень до елементів масиву a1: a1[1] – звернення до 1-го елемента масиву, a1[i+3] – звернення до i+3-го елемента масиву. Масив a1 описаний з використанням другої альтернативи.
a2 – масив елементів літерного типу (тип елементів – char, тип індексy – діапазон з базовим типом integer, можливі значення індексу від 1 до 255. Масив a2 описаний з використанням першої альтернативи. Можливі звернення: a2[“a”], a2[“O”].
a3 – масив елементів типу month, тип індексy – color, можливі значення індексу red, orange, yellow, green, blue, violet. Можливі звернення до елементів масиву a3: a3[red], a3[pred(yellow)], a3[p], p – має бути типу color. Масив а3 описаний з використанням першої альтернативи.
а4 – масив елементів типу klass (можливі значення елементів масивів – к1, к2, к3, к4), тип індексy – діапазон з базовим типом integer, можливі значення індексу масиву від 1 до 4. Масив а4 описаний з використанням другої альтернативи.
В цьому прикладі при описі масивів використовуються цілі константи (255, 4, 20). Це є ознакою негарного виховання в програмуванні. Виховані програмісти масиви а1, а2, а3, а4 описують так:
const
c4=4; c20=20; c255=255;
type
klass=(k1, k2, k3, k4);
znak=array[1..c255] of char;
color=(red, orange, yellow, green, blue, violet);
month=(January, February, March, April, May,
June, July, August, September,
October, November, December);
P3=array[color] of month;
var
a1: array[1..c20] of integer;
a2: znak;
a3: p3;
a4: array[1..c4] of klass;
Якщо в якості типу елементів при описанні масивів взяти тип масив, то одержимо масив масивів. Масив масивів прийнято називати двовимірним масивом. Масив двовимірних масивів називають тривимірним масивом, і т.д.
Розмірність масиву (не плутати з розмірами масиву) визначає кількість індексів, які необхідно вказати для звернення до елемента масиву.
Приклад.
const
nmax=4;
type
size=1..nmax;
vector=array[size] of integer;
matrix=array[size] of vector;
var
a: matrix;
Описаний масив a. Це – двовимірний масив. Звернення до окремого елемента масиву може бути таке a[i][j], або більш зручніше a[i,j]. Тут перший індекс визначає номер елемента типу vector, а другий індекс – номер елемента типу integer в i-му елементі типу vector.
Turbo Pasсal допускає значно зручніший опис багатовимірних масивів.
Перша альтернатива:
type
ім'я масиву=array[тип 1-го індексy,тип 2-го індексy,...]
of тип елементів;
var
список масивів:ім'я масиву;
Друга альтернатива:
var
список масивів: array[тип 1-го індексy,тип 2-го індексy,...]
of тип елементів;
Приклад:
const
r1=10; r2=15; r3=20;
type
i1=1..r1;
i2=1..r2;
i3=1..r3;
matrix2=array[i1, i2] of integer;
matrix3=array[i1, i2, i3] of real;
var
a2: matrix2; a3: matrix3;
Описані масиви a2, a3. Перший масив є двовимірним з 10×15=150 елементів типу integer. Другий – тривимірний масив з 10×15×20=3000 елементів типу real. Звернення до окремого елемента масиву а2 а2[i,j], а для масиву а3 – а3[i,j,k].
М
6
Приклад.
const
nmax=20;
type
size=1..nmax;
matrix=array[size, size] of integer;
var
a, b: matrix;
Дія Результат
а=b true, якщо a[i,j]=b[i,j] для всіх i, j,
false в протилежному випадку
а<>b false, якщо a[i,j]=b[i,j] для всіх i, j,
true в протилежному випадку
а:=b всім елементам масиву а присвоюються значення відповідних елементів масиву b.
Це були дії, які можна виконувати над масивами як єдино цілими. Над елементами масивів деякого типу можна виконувати всі дії, які допускаються для скалярних змінних цього ж типу. Тому елементи масивів називаються ще змінними з індексами.
