Статические массивы

На верх  Назад  Вперёд

Когда диапазон массива включен в определение массива, он называется статическим массивом. Попытка доступа к элементу с индексом, который находится вне указанного диапазона будет генерировать ошибку времени выполнения (если включена проверка диапазона). Ниже приведен пример правильного объявления массива:

Type

RealArray = Array [1..100] of Real;

Индексы допустимые для доступа к элементу массива находятся в границе от 1 до 100, включительно с 1 и 100. Как и в Turbo Pascal, если тип массива является сам по себе массивом, можно объединить два массива в один многомерный массив. Следующее объявление:

Type

APoints = array[1..100] of Array[1..3] of Real;

эквивалентно объявлению:

Type

APoints = array[1..100,1..3] of Real;

Функции High и Low возвращают самое высокое и низкое разрешённое значения индекса массива. В приведенном выше случае, это будет 100 и 1. Вы должны по возможности использовать их, так как они улучшают управляемость вашего кода. Использование обеих функций является столь же эффективно, как использование констант, так как они вычисляются во время компиляции.

Когда переменная типа статический массив присвоена другой переменной, копируется содержание целого массива. Это также истинно для многомерных массивов:

program testarray1;

 

Type

TA = Array[0..9,0..9] of Integer;

 

var

A,B : TA;

I,J : Integer;

begin

For I:=0 to 9 do

  For J:=0 to 9 do A[I,J]:=I*J;

For I:=0 to 9 do

  begin

    For J:=0 to 9 do Write(A[I,J]:2,' ');

    Writeln;

  end;

B:=A;

Writeln;

For I:=0 to 9 do

  For J:=0 to 9 do A[9-I,9-J]:=I*J;

For I:=0 to 9 do

  begin

    For J:=0 to 9 do Write(B[I,J]:2,' ');

    Writeln;

  end;

end.

Выводом этой программы будут 2 идентичных матрицы.