В качестве индекса массива можно использовать любой порядковый тип, кроме типа Longint. Напомним, что порядковый тип – это тип, все значения которого можно перечислить. К таким типам относятся все целые типы(integer, shortint, longint, byte, word), все логические (boolean, wordbool, longbool, bytebool), символьный тип (char), перечисляемые типы и типы-диапазоны.
Примеры использования в качестве индексов порядковых типов:
Var {примеры объявления массивов}
A: Array [Byte] of integer; {массив A, состоящий из 256 элементов, нижняя граница индекса 0, верхняя 255}
B: Array [Char] of real; {массив B, состоящий из 256 элементов, нижняя граница индекса #0(символ с кодом 0), верхняя граница индекса #255(символ с кодом 255)}
i:Byte; {переменная, используемая как индекс массива A}
c:Char; {переменная, используемая как индекс массива B}
Begin {примеры обращения к элементам массива}
A[45]:=0; {В элемент массива A, имеющий индекс 45, записали 0 }
B[‘t’]:=2.4; {В элемент массива B, имеющий индекс ‘t’, записали 2.4}
i:=200; {i присвоили значение 200 }
c:=’#’; {c присвоили значение ‘#’ }
A[i]:=23400; {В элемент массива A, имеющий индекс i=200, записали 23400}
B[c]:=123.456; {В элемент массива B, имеющий индекс c=’#’, записали 123.456}
End.
Обычно в качестве индекса используют диапазон значений какого-либо перечисляемого типа.
Например:
Var {примеры объявления массивов}
C: Array [-10..5] of integer; {массив C, состоящий из 16 элементов, нижняя граница индекса -10, верхняя 5}
D: Array [‘A’..’Z’] of char; {массив D, состоящий из 26 элементов, нижняя граница индекса ’A’, верхняя граница индекса ‘Z’}
j: -10..5; {переменная, используемая как индекс массива C}
c1: ‘A’..’Z’; {переменная, используемая как индекс массива D}
k: integer; {эту переменную можно использовать в качестве индекса массива C, т.к. –10..5 – это диапазон значений целого типа}
c2: char; {эту переменную можно использовать в качестве индекса массива D, т.к.’A’..’Z’ – это диапазон значений символьного типа}
begin {примеры обращения к элементам массивов}
C[-4]:=3;
D[‘F’]:=’%’;
j:=4; C[j]:=-10;
c1:=’R’; D[c1]:=’q’;
k:=-3; C[k]:=80;
c2:=’G’; D[c2]:=’Й’;
end.
Чаще же всего используют диапазон значений целого типа, причем нижний индекс обычно берут равным 1.
Например:
Var
E: Array [1..10] of integer; {массив E, состоящий из 10 элементов, нижняя граница индекса 1, верхняя 10}