VAR <переменная>: ARRAY [тип индекса] OF <тип компонент>;
Например, объявление массива из 100 элементов типа REAL можно осуществить двумя способами:
1. type R100 = array [1..100] of real;
var A: R100;
2. var A: array [1..100] of real.
Здесь задан массив с именем А, и его элементы имеют имена: А[1],…,A[100]. Чаще всего для типа индекса используют интервальный тип на основе типов INTEGER и CHAR. Однако можно в качестве индексов брать перечислимый тип.
П р и м е р 1. Подсчет числа вхождений букв в текст определенной длины.
program COUNTER;
var COUNT: array ['a'..'z'] of integer;
CH: char; N: integer;
begin
for CH := 'a' to 'z' do
COUNT [CH] := 0; N := 0;
repeat
read (CH); N := N + 1;
if (CH >= 'a') and (CH <= 'z') then
COUNT [CH] := COUNT [CH] + 1;
until CH = '.';
for CH := 'a' to 'z' do
writeln (CH, COUNT [CH]:5);
end.
Пояснение. В этом примере тип индекса есть интервальный тип на базе типа CHAR, а тип компонент есть целое число. Таким образом, элементы массива – числа, а их индексы – буквы, т.е. число элементов массива равно 26 (по числу букв латинского алфавита).
Рассмотрим теперь случай, когда тип индекса задан перечислимым типом, а компоненты массива представлены компонентами интервального типа на базе типа INTEGER.
П р и м е р 2. Присваивание переменной с именем месяца числа дней этого месяца.
DAY:
Значения элементов
Значения индексов
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OKT
NOV
DEC
program NUMBRDAY;
type MONAT = (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG,