Параметры процедуры 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