Использование подпрограмм для работы с массивами

Рассмотрим, как можно передавать массивы в подпрограмму. Как известно (см. прил. 1), чтобы объявить переменные в списке формальных параметров подпрограммы, необходимо указать их имена и типы.

Однако типом любого параметра в списке может быть только стандартный или ранее объявленный тип. Поэтому для того чтобы передать в подпрограмму массив, необходимо вначале описать его тип, а затем объявлять процедуру:

type тип_массива= array [список_индексов] of тип;

procedure имя_поцедуры(имя_массива: тип_массива);

Например:

type

vector=array [1..10] of byte;

matrica=array [1..3, 1..3] of real;

procedure proc(A:matrica;b:vector;var x:vector);

Понятно, что передача в подпрограмму строки вида

имя_переменной: string[длина_строки];

которая фактически является массивом63, должна осуществляться аналогично:

type тип_строки= string [длина_строки];

procedure имя_поцедуры(имя_строки: тип_ строки);

Массивы в подпрограмму можно передавать, используя понятие открытого массива. Открытый массив — это массив, при описании которого указывается тип составляющих его элементов, но не определяются границы изменения индексов:

имя_открытого_массива: array of array of … тип;

Распределение памяти и указание границ индексов по каждому измерению открытых массивов осуществляется в ходе выполнения программы с помощью функции SetLength:

SetLength(имя_массива, список_границ_индексов);

Для освобождения выделенной памяти нужно выполнить оператор:

имя_массива:=NIL;

Нижняя граница открытого массива (минимальное значение номера элемента) всегда равна нулю. Верхняя граница (максимальное значение номера элемента) возвращается стандартной функцией:

high(имя_массива)

Открытый массив можно использовать и при обычной обработке массивов в языке Free Pascal.

Открытый массив может быть формальным параметром подпрограммы:

procedure имя_поцедуры(имя_открытого_массива: array of тип;);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: