Поиск максимального элемента в массиве
Найти максимальный элемент численного массива.
Алгоритм решения задачи:
Значения, составляющие массив, могут быть получены из разных источников: путем вызова функции random
, ввода значений пользователем, считывания из файла. В программе ниже используется первый вариант.
В задачах подобного рода (поиск максиму или минимума) может быть поставлена цель, найти
- только индекс элемента,
- только значение или
- как индекс, так и значение.
В программе ниже используется последний вариант.
Удобно, когда при запуске программы весь массив выводился на экран. В этом случае пользователь может оценить правильность работы программы.
- В переменной max_num хранится текущее максимальное значение массива, а в max_index – его позиция (индекс).
- В программе можно выделить две части: заполнение массива числами с выводом их на экран (первый цикл
for
) и непосредственно поиск максимума (второй циклfor
). - Перед первым циклом запускается процедура
randomize
для того, чтобы при каждом запуске программы значения массива были разными. - Изначально делается предположение, что первый элемент массива и есть максимум. Поэтому переменной max_index присваивается значение 1 (то есть индекс первого элемента массива), а max_num – непосредственно значение, хранящееся в первой ячейке массива.
- Начиная со второго элемента, каждое очередное значение массива сравнивается с текущим значением max_num. В случае, если текущее значение массива больше, чем хранящиеся в max_num, происходит новое присваивание обоим переменным текущего значения и индекса.
Программа на языке Паскаль:
const
m = 20;
var
arr: array[1..m] of byte;
max_num, max_index: byte;
i: byte;
begin
randomize;
for i := 1 to m do begin
arr[i] := random(100);
write (arr[i]:3);
end;
max_index := 1;
max_num := arr[1];
for i := 2 to m do
if arr[i] > max_num then begin
max_index := i;
max_num := arr[i];
end;
writeln;
writeln ('Max = ',max_num);
writeln ('position: ', max_index);
end.