Параметры процедуры minmax

Входные:

x – исходный массив,

compare – наименование функции сравнения (получает значение less или more);

Выходные:

minmaxElement – значение минимального/максимального элемента массива,

minmaxNumber – номер минимального/максимального элемента.

Функция сравнения less возвращает значение истина, если значение первого параметра меньше значения второго параметра.

Функция сравнения more возвращает значение истина, если значение первого параметра больше значения второго параметра.

Процедурный тип соответствующий этим функциям имеет вид:

MinMaxFunc = function (first, second: integer):boolean;

Спецификации функций less и more должны содержать ключевое слово far («дальний вызов»). Это указание необходимо компилятору для правильной генерации исполняемой программы.

Пусть в операторе вызова процедуры minmax в качестве наименования функции сравнения передается less.

Параметр minmaxElement будет получать значение элемента массива x[i], если x[i] меньше текущего значения этого параметра.

Таким образом, после завершения цикла сравнений параметр minmaxElement будет иметь значение наименьшего элемента массива, а параметр minmaxNumber – значение номера этого элемента.

Аналогично будет выполняться процедура minmax, если в качестве наименования функции сравнения передается more. В этом случае параметр minmaxElement будет получать значение элемента массива x[i], если x[i] больше текущего значения этого параметра. В результате minmaxElement будет иметь значение наибольшего элемента массива, а параметр minmaxNumber – значение номера этого элемента.

Результаты вызова процедуры minmax приведены на рисунке 3.5.

Рисунок 3.4 – Пример передачи наименования подпрограммы как параметра

Рисунок 3.5 – Результат работы процедуры minmax


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



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