Масив - це сукупність змінних однакового типу, яка має загальне ім'я. Масив відноситься до складних типів даних. Для опису масиву потрібно вказувати загальне ім’я масиву, тип елементів масиву, а також тип індексу який буде використовуватися в операторах для доступу до елементів масиву. Якщо описати тип масиву у розділі Type, то цей тип може бути використаний при визначенні інших типів і змінних. Наявність індексу - змінної, за допомогою якої виконується читання і запис будь-якого елемента масиву, дає можливість назвати масив змінною регулярного типу. Поняття масиву відповідає поняттю вектора в математиці.
Для обробки десяти точок на площині можна використовувати два одномірних масиву координат:
VAR
X: ARRAY[1..10] OF REAL;
Y: ARRAY[1..10] OF REAL.
У цьому описі дійсний базовий тип Real є типом компонент - елементів масиву X і Y; як індекс вказаний обмежений цілий тип 1..10, що дозволяє в операторах програми використовувати координати точки 1: X[1] та y[1], точки 2: X[2] і Y[2] і т. ін. Крім того, X і Y є регулярними змінними типу ARRAY[1..10] OF REAL.
Наведений вище опис можна зробити інакше:
VAR X,Y: ARRAY[1..10] OF REAL;
Ще один спосіб:
TYPE POINT = ARRAY[1..10] OF REAL;
VAR X,Y: POINT;
У цьому випадку тип змінних регулярного типу задається явно в розділі опису типів, а далі в розділі опису змінних визначені дві змінні типу POINT.
Як типу індексу може виступати будь-який дискретний тип, крім LONGINT і обмежених типів, побудованих з типу LONGINT; зокрема, допустимі обмежені та перераховані типи. Дійсний тип не можна використовувати як тип індексу.
Тип елементів масиву може бути будь-яким: простим або складним.
Вводити і виводити масиви можна тільки по елементам. Для цього зручно використовувати оператор циклу FOR, в якому змінюються індекси елементів.
Так, ввести масив з 10 елементів можна наступними операторами:
Writeln ('Введіть 10 елементів масиву');
for J: = 1 to 10 do
Read (B [J]);
При виведенні масиву використання оператора Write дозволяє вивести елементи в один рядок:
for J: = 1 to 10 do
Write (B [J]: 3);
Writeln;
Оператор Writeln після циклу переводить покажчик на наступний рядок.
Приклад. Переписати елементи масиву цілих чисел M(40), які кратні п'яти в масив M5. Якщо такі елементи відсутні, то видати відповідне повідомлення.
Для формування нового масиву використана змінна К, яка спочатку дорівнює 0, а потім збільшується на 1 тоді, коли зустрічається елемент, кратний 5.
Програма має вигляд:
PROGRAM KRAT5;
VAR K,I,N: INTEGER;
М,M5: ARRAY[1..40] OF INTEGER;
BEGIN
WRITELN(‘ВВЕДІТЬ КІЛЬКІСТЬ ЕЛЕМЕНТІВ МАСИВУ');
READLN(N);
WRITELN(‘ВВЕДІТЬ ЕЛЕМЕНТИ МАСИВУ');
FOR I:=1 TO N DO
READ(M[I]);
WRITELN(‘ВИХІДНИЙ МАСИВ');
FOR I:=1 TO N DO
BEGIN
WRITE(M[I]:4);
IF I MOD 10 =0 THEN WRITELN;
END;
WRITELN;
K:=0;
FOR I:=1 TO N DO
IF M[I] MOD 5=0 THEN
BEGIN
K:=K+1;
М5[K]:=M[I]
END
IF K=0 THEN
WRITELN (‘ ЕЛЕМЕНТІВ, ЩО КРАТНІ 5, НЕМАЄ’)
ELSE
BEGIN
WRITELN(’ ОТРИМАНИЙ МАСИВ’);
FOR I:=1 TO K DO
BEGIN
WRITE(M5[I]:4);
IF I MOD 10 =0 THEN WRITELN;
END
END
END.
Виведення даних виконується по 10 чисел у рядку.