Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
|
Отличие среды Borland Pascal Открытые массивы отсутствуют в языке PascalABC. Они есть только в Borland Pacal и Delphi. Если вы пользуетесь этими языками, то стоит ознакомится с нижеприведенным материалом, чтобы не путать их с динамическими массивами. Иначе можете переходить к следующему разделу.
Требование всегда описывать тип-массив для передачи параметра-массива затрудняет разработку универсальных процедур. Например, хотелось бы иметь процедуру, которая может находить сумму элементов произвольного массива, а не только массива из 10 элементов типа integer. Для этого в Паскале предусмотрены так называемые открытые массивы. Открытым массивом называется формальный параметр-массив, для которого указан тип элементов, но не указана его длина. Например: procedure P5(var a: array of integer); В качестве фактического параметра можно передавать целочисленный массив любой длины. Формальный параметр a при этом будет массивом, индексы которого начинаются с нуля. Максимальный индекс в открытом массиве можно получить с помощью стандартной функции High(a). Длину фактически переданного массива можно таким образом подсчитать как High(a) + 1. Пример: Универсальная процедура, подсчитывающая сумму элементов массива.
var
x: array [-5..5] of integer;
i, sum: integer;
procedure ArraySum(var a: array of integer; var s:integer);
var
i: integer;
begin
s:=0;
for i:=0 to High(a) do
s:=s+a[i];
end;
begin
for i:=-5 to 5 do
readln(x[i]);
ArraySum (x, sum);
writeln(sum);
end.
Не смотря на то, что в качестве фактического параметра использован массив со значениями индексов от -5 до 5, формальный параметр есть массив, индексы которого начинаются с нуля. Функция High(a) вернет в данном примере значение 10. |
Следующий раздел:
Предыдущий раздел: