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