Простіше всього задача пошуку мінімального з трьох, чотирьох та більше чесел, вирішується перевантаженням функції знаходження мінімального з двох.
Аналогічні функції можна написати для пошуку максимального з чисел. Для цього достатньо замінити знак порівняння в функції з двома аргументами(в першій з розглянутих).
Для реалізації спочатку необхідно написати функцію, яка знаходить мінімальне з двох чисел.
Функція для визначення мінімального з двох чисел
function Min(x1, x2 : integer) : integer;
begin
if x1 < x2 then
Min := x1
else
Min := x2;
end;
Тепер у нас є код, який повертає найменше з двох чисел. Для того, щоб розширити кількість аргументів до трьох, достатньо написати ще одну функці., яка буде двічі викликати попередню.
Функція для пошуку меншого з трьох чисел
function Min(x1, x2, x3 : integer) : integer;
begin
Min := Min(Min(x1, x2), x3);
end;
А якщо потрібно порівняти чотири, п’ять та більше чисел і знайти мінімальне з них?
Без проблем, ми можемо писати стільки перевантажених функцій, скільки нам потрібно.
Мінімум з чотирьох чисел
function Min(x1, x2, x3, x4 : integer) : integer;
begin
Min := Min(Min(x1, x2, x3), x4);
end;
Ця функція використовує виклик двох попередніх.
Програма для пошуку та виводу мінімальних чисел
всі розглянуті вище функції повинні бути розміщені в тому ж порядку над тілом основної програми
В залежності від кількості аргументів, компілятор вибирає яку з функцій викликати.
begin
writeln(Min(3, 5));
writeln(Min(9, 1, 0));
writeln(Min(8, 4, 7, 2));
readln;
end.
Якщо необхідно порівнювати багато чисел, то краще за все, зберігати їх у вигляді масиву даних, та шукати мінімальний чи максимальний елемент масиву.