Передача массивов в качестве параметров
При передаче массива в качестве параметра
в процедуру или функцию необходимо
описать тип данного массива в разделе
описания типов, например
type
Vector=Array[1..10] of Real;
затем объявить одну или несколько
переменных заданного типа (Vector),
например:
Var
X,Y:Vector;
{Массивы}
а заголовок подпрограммы, куда передается
массив оформить таким образом:
Procedure
WriteVector(A:Vector);
При вызове данной процедуры в нее нужно
передать массив типа Vector,
например:
WriteVector(X);
Примечание – Данная подпрограмма может
использовать только массивы, объявленные
как Vector,
попытка использовать другие массивы
вызовет ошибку компиляции (несовместимость
типов).
Начиная с версии Turbo Pascal
7.0 при передаче одномерных массивов в
подпрограмму можно использовать открытые
границы массива. Заголовок подпрограммы
при этом будет выглядеть так
Procedure
VriteVector(A:Array
of
Real);
Для организации доступа к элементам
массива используются специальные
функции Low(Массив) и
High(Массив). При этом функция
Low возвращает нижнюю
границу индекса массива, а High
– верхнюю.
Пример процедуры с открытыми границами
массива:
Procedure
WriteMassiv(X:Array of Integer);
Var
i:Integer;
Begin
For i:=Low(X) to High(X) do
Write(X[i]:6);
WriteLn;
End;
По умолчанию считается, что нижняя
граница индекса равна нулю, а верхняя
граница=число_элементов-1.
Таким образом, если было объявлено
Var
M2=Array[1..10]
of
Integer;
то при вызове объявленной выше процедуры
WriteMassiv с массивом M2
в качестве параметра, его элементы
внутри процедуры будут нумероваться
от 0 до 9 (а не от 1 до 10 как было объявлено
в основной программе).