Максимальний елемент масиву

Алгоритм пошуку максимального елементу невпорядкованого масиву полягає в наступному:

  • спочатку ми вважаємо, що найбільший елемент знаходиться на початку масиву;
  • збурігаємо значення першого елементу в змінну;
  • потім порівнюємо збурежене значення з наступними елементами, один за другим, якщо якийсь елемент більше, як збережений максимум, то обновляємо значення змінної;
  • після обходу всього масиву повертаємо максимальний елемент.

Код програми для пошуку максимального елементу масиву

{$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.  

Дивіться також: