Читайте также:
|
|
Массивы – упорядоченная структура однотипных данных, хранящихся последовательно. Массив обязательно имеет размеры. Описывается в разделе TYPE или VAR следующим образом:
Type <имя>=array[индексный тип] of <базовый тип>; или
Var <Имя_переменной>: array [ диапазон_индексов] of <базовыйтип>;
Диапазон индексов может задаваться любым порядковым типом кроме LongInt. Произведение количества компонентов массива, задаваемого диапазоном индексов на размер компонентов в байтах, не может превышать 65520 байт.
Пpимер: TYPE
array10=array[1..10] of integer;
array11=array[11..22] of real;
VAR V:array[-3..2] of char; {массив из 6 элементов}.
В качестве индексов можно использовать любые перечислимые типы как встроенные, так и вводимые программистом. Индексы в этом случае могут задаваться также диапазоном. Если диапазон соответствует всему типу, можно просто указывать имя этого типа. Например:
TYPE DIAP=1..100;
VECTOR=array[DIAP] of real;
PRIZ=array[Boolean] of char;
При записи сложных массивов индексы разных диапазонов могут принадлежать разным типам. Например:
VAR V: array[0..10,'A'..'C',Boolean] of char;
В качестве значений диапазона могут использоваться идентификаторы, если их значения определены выше. Например:
CONST
K=10; L=5;
VAR
A:ARRAY[1..K] OF INTEGER;
B,С:ARRAY[1..K,1..L] OF REAL;
Массивы хранятся в памяти как сплошные последовательности компонентов, причем, быстрее изменяется дальний правый индекс.
Обращение к элементу массива производится указанием имени массива и индексов, заключенных в квадратные скобки:
<имя>[<индексы>].
Пример:
A[1]:= 1; B[8,5]:= В[8,1] + B[8,2];
V[1,'B',False] или V[1]['B'][False].
В данном типе определена единственная операция присваивания. Можно присваиваить массив лишь массиву, например: A:= С.
Операции сравнения производятся только поэлементно.
Обнуление элементов массива выполняется циклом
FOR I:=1 TO K DO A[I]:=0.
Разрешается обьявлять массивы массивов, например:
TYPE VECTOR=array[1..5] of real;
MATRIX=array[1..10] of VECTOR;
или
MATRIX=array[1..10] of array[1..5] of real;
или
MATRIX=array[1..10,1..5] of real;
Приведенные три последних вида записей эквивалентны.
Слову array может предшествовать ключевое слово PACKED, которое означает «упакованный». Заметим, что в Турбо Паскале все массивы хранятся в упакованном виде, поэтому PACKED писать не рекомендуется.
Дата добавления: 2015-09-05; просмотров: 101 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ограниченный тип (диапазон) | | | Множества |