Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
Отличие среды 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. |
Следующий раздел:
Предыдущий раздел: