Смекни!
smekni.com

Массивы в языке Паскаль (стр. 4 из 4)

Открытый массив представляет собой формальный параметр подпрограммы, описывающий базовый тип элементов массива, но не определяющий его размерности и границы:

Procedure MyProc(OpenArray: array of Integer);

Внутри подпрограммы такой параметр трактуется как одномерный массив с нулевой нижней границей. Верхняя граница открытого массива возвращается функцией HIGH, упоминавшейся в п.4.1.1. Используя 0 как минимальный индекс и значение, возвращаемое функцией HIGH, как максимальный индекс, подпрограмма может обрабатывать одномерные массивы произвольной длины:

{Иллюстрация использования открытых массивов: программа выводит на экран содержимое двух одномерных массивов разной длины с помощью одной процедуры ArrayPrint}

Procedure ArrayPrint(aArray: array of Integer);

var

k: Integer;

begin

for k := 0 to High(aArray) do

Write(aArray[k]:8);

WriteLn

end;

const

A:array [-1..2] of Integer = (0,1,2,3);

B: array [5..7] of Integer = (4,5,6);

begin

ArrayPrint(A);

ArrayPrint(B)

end.

Как видно из этого примера, фактические границы массивов А и В, передаваемых в качестве параметров вызова процедуре ArrayPrint, не имеют значения. Однако размерность открытых массивов (количество индексов) всегда равна 1 - за этим следит компилятор. Если бы, например, мы добавили в программу двумерный массив С

var

С: array [1..3,1..5] of Integer;

то обращение

ArrayPrint(С)

вызывало бы сообщение об ошибке

Error26: Type mismatch.

(Ошибка 26: Несоответствие типов.)


Список литературы

1.Пильщиков В.Н. Сборник упражнений по языку Паскаль: Учеб. пособие для вузов.-М.:Наука, 1989.-160с.

2. Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль. М.: Наука 1988.-128с.

3. Введение в язык Паскалью./Абрамов В.Г. Трифонов Н.П. Трифонова Г.Н. Учеб. пособие .- М.: Наука 1988.-320с.

4.Могилев А.В. Практикум по инф-ке. Учебное пособие для студентов уч. Заведений\ Могилев А.В., Пак Н.И., Хеннер Е.К., М.:Академия, 2001.-608с.