Все, что необходимо начинающему и опытному программисту
Поиск максимального элемента массива
Довольно-таки типичная задача для большого количества данных — поиск максимума. Например, в списке успеваемости учеников класса найти самого прилежного. Иначе говоря, требуется выбрать наибольшее значение среднего балла и указать фамилию ученика.
Пример 8.3.
Программа поиска максимального элемента в массиве и его индекса (см. блок-схему, алгоритма на рис. 8.5)
Рис. 8.5. Блок-схема алгоритма поиска максимального элемента массива и его индекса
Заметим, что в процессе поиска максимума не обязательно хранить обе величины — номер максимума и его значение. Достаточно хранить одну, в зависимости от поставленной задачи.
Если индекс максимума не нужно знать, достаточно будет переменной Мах. Если, наоборот, нужен только номер — достаточно Imax.
Тонкость состоит в том, что если нужно найти и то и другое, все равно достаточно найти только Imax, ведь значение максимума легко может быть получено по его индексу (A[Imax]).
Pascal.Урок6.4 Одномерный массив. Поиск максимального элемента и его номера
Иными словами, нашу программу можно упростить следующим образом:
Пример 8.4.
Программа поиска максимума, не хранящая значение максимума, а запоминающая только его номер
Program Maximum2;
const
N=10;
type
Mas=array [1..N] of integer;
var
A: Mas;
i, imax: integer;
begin
Randomize;
for i:= 1 to N do
begin
A[i]:=-50+Random(101);
write(A[i]:5)
end;
writeln;
< V. Поиск индекса максимального элемента в массиве >
imax:=l;
for i := 2 to N do
if A[imax] < A[i] then
imax:=i;
writeln (‘Максимальный элемент в массиве=’, A[imax]:5);
writeln(‘Его индекс=’,imax:5);
readln
end.
Задание 8.5.
Выполните поиск максимальйого и минимального элемента в массиве за один цикл (блок-схема алгоритма показана на рис. 8.6).
Рис. 8.6. Блок-схема алгоритма поиска индексов максимального и минимального элементов массива за один цикл
Задание 8.6.
В одномерном массиве из 10 элементов определить местоположение минимального элемента. Обнулить элементы, стоящие до него, но не сам этот элемент. (Обнулить — значит записать 0 на место элемента, то есть выполнить A[i] := 0.) Измененный массив вывести на экран.
Задание 8.7.
В одномерном массиве из 10 элементов определить местоположение минимального и максимального элементов. Обнулить элементы, стоящие между ними, а также сами эти элементы.
Источник: www.programmer-lib.ru
Поиск максимального элемента в массиве
Значения, составляющие массив, могут быть получены из разных источников: путем вызова функции 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.
Источник: pas1.ru
Максимальный элемент массива в Pascal
Часто встречаются задачи, где необходимо найти максимальный элемент в массиве. Рассмотрим общий алгоритм решения такой задачи.
Первое, что придётся сделать – создать массив. Как нам уже известно, нужно использовать цикл с параметром. Также удобнее будет создать массив случайным образом, если в условии задачи не оговорён способ задания массива.
Алгоритм нахождения максимального элемента массива выполняется следующим образом.
Сначала указываем, что первый элемент массива считается максимальным, иначе говоря – Max = A[i].
Потом начинаем процесс сравнивания последующих элементов массива с максимальным элементом в массиве.
- Если максимальный элемент больше следующего, то ничего не меняем.
- Если максимальный элемент меньше следующего, то он становиться максимальным.
Блок-схема максимальный элемент массива
Программа максимальный элемент массива Pascal
Ниже представлен текст программы на языке Pascal, как найти максимальный элемент массива. Как было указанно в алгоритме выше, сначала создается сам массив (в моем случает любые целые числа от 0 до 100 включительно).
Program Max_element_massiva ; Var i, n, max : integer ; A : array [1..100] of integer; Begin Writeln(‘Введите количество элементов массива’) ; Readln(N) ; Randomize; For i := 1 to N do begin A[i] := Random(100); Write(A[i]); end; Max := A[1]; For i := 2 to N do if A[i]>Max then Max := A[i]; Writeln(‘Максимальный Элемент массива = ‘,Max) ; Readln ; End.
Источник: bigspawn.blogspot.com