Поиск максимального элемента в массиве в Pascal
Найти максимальный элемент численного массива.
Алгоритм решения задачи:
Значения, составляющие массив, могут быть получены из разных источников: путем вызова функции 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.