Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec05-АТП2011-12.doc
Скачиваний:
1
Добавлен:
11.07.2019
Размер:
61.44 Кб
Скачать
    1. Передача массивов в качестве параметров

При передаче массива в качестве параметра в процедуру или функцию необходимо описать тип данного массива в разделе описания типов, например

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 как было объявлено в основной программе).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]