Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Поиск максимального элемента массива

Довольно-таки типичная задача для большого количества данных — поиск максимума. Например, в списке успеваемости учеников класса найти самого прилежного. Иначе говоря, требуется выбрать наибольшее значение среднего балла и указать фамилию ученика.

Пример 8.3.
Программа поиска максимального элемента в массиве и его индекса (см. блок-схему, алгоритма на рис. 8.5)

Program Maximum;
const
N=10;
type
Mas=array [1..N] of integer;
var
A: Mas;
i: integer; { Счетчик.цикла }
Мах: integer; { Переменная для хранения величины максимального элемента }
Imax: integer; { Переменная для хранения индекса максимального элемента }
begin { Тело программы }
{ Заполним элементы массива значениями датчика случайных чисел и выведем весь получейный массив на экран в одном цикле }
Randomize;
for i:= 1 to N do
begin
A[i]:= -50+Random(101);
write(A[i]:5)
end;
writein:
{ V. Поиск максимального элемента и его индекса в массиве }
Imax:=l: { Сначала считаем, что первый элемент массива и есть максимальный }
Мах:=А[1]; { Его индекс и величину записываем соответственно в переменные Imax и Мах }
for i: = 2 to N do { Сравним нашего кандидата в максимумы со всеми остальными элементами массива (со второго до последнего) }
if Мах < A[i] then { Если наш кандидат в максимумы оказался меньше текущего элемента... }
begin
Max:=A[i]; { ... то будем считать теперь кандидатом в максимумы текущий элемент}
Imax:=i { Запомним его значение и индекс в переменных Мах и Imax }
end;
writeln ('Максимальный элемент в массиве=', Мах:5);
writeln('Его индекс=', Imах:5);
readln
end.

Рис. 8.5. Блок-схема алгоритма поиска максимального элемента массива и его индекса

Заметим, что в процессе поиска максимума не обязательно хранить обе величины — номер максимума и его значение. Достаточно хранить одну, в зависимости от поставленной задачи.

Если индекс максимума не нужно знать, достаточно будет переменной Мах. Если, наоборот, нужен только номер — достаточно Imax.
Тонкость состоит в том, что если нужно найти и то и другое, все равно достаточно найти только Imax, ведь значение максимума легко может быть получено по его индексу (A[Imax]).
Иными словами, нашу программу можно упростить следующим образом:

 

Пример 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 элементов определить местоположение минимального и максимального элементов. Обнулить элементы, стоящие между ними, а также сами эти элементы.




 

Комментарии:

2013-06-13 ответил 2

2



2013-11-13 ответил Николай

Круто, че.



2014-04-01 ответил к

тупость



2014-05-13 ответил Виктор

хуйня паскаль



2014-10-11 ответил Витор

Вы правы, но основы программирования на нем изучать - самое то. Весьма простой и доступный язык



2014-12-18 ответил маша

помогите найти наибольший элемент таблицы в паскале раз это просто



2015-11-13 ответил Дарья

Помогает, но мы решаем не так, и поэтому учитель зачтет как не правильное(



2016-12-14 ответил Саша

А можно в интернете найти где просто найти максимум масива, без всяких дополнений



2017-03-22 ответил Пень

Лес уже не тот




Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru