Алгоритм пошуку максимального елементу невпорядкованого масиву полягає в наступному:
- спочатку ми вважаємо, що найбільший елемент знаходиться на початку масиву;
- збурігаємо значення першого елементу в змінну;
- потім порівнюємо збурежене значення з наступними елементами, один за другим, якщо якийсь елемент більше, як збережений максимум, то обновляємо значення змінної;
- після обходу всього масиву повертаємо максимальний елемент.
Код програми для пошуку максимального елементу масиву
{$CODEPAGE UTF8}
program Maximal;
const
arrayLength = 10;
var
inputArray : array [1..arrayLength] of integer;
maximum, i: integer;
begin
randomize;
writeln ('Вхідний масив: ');
{заповнення випадковими числами}
for i := 1 to arrayLength do
begin
inputArray[i] := random(100);
write (inputArray[i]:4);
end;
writeln;
{пошук максимального значення}
{вважаємо, що перший елемент і є максимальним}
maximum := inputArray[1];
for i := 2 to arrayLength do
if maximum < inputArray[i] then {якщо поточне значення більше максимального}
maximum := inputArray[i]; {присвоюємо максимуму поточне значення}
write('Максимальний елемент масиву ', maximum);
readln;
end.
Рекурсивний алгоритм пошуку максимального значення елементу масиву
Знайти максимальний елемент масиву можна також рекурсивно. Реалізація методу трохи складніша, однак корисна для вивчення принципів рекурсивного виклику функцій.
{$CODEPAGE UTF8}
program Maximum;
const
arrayLen = 10;
var
inputArr : array [1..arrayLen] of integer;
max, i: integer;
function MaxElement(maximal, index: integer):integer;
begin
if index > arrayLen then
MaxElement := maximal
else
begin
if inputArr[index] > maximal then
maximal := inputArr[index];
MaxElement := MaxElement(maximal, index + 1); {рекурсивний виклик}
end;
end;
begin
randomize;
writeln ('Вхідний масив: ');
for i := 1 to arrayLen do
begin
inputArr[i] := random(100);
write (inputArr[i]:4);
end;
writeln;
{рекурсивний пошук максимуму}
max := inputArr[1];
max := MaxElement(max, 2);
write('Найбільший елемент ', max);
readln;
end.