Пусть требуется составить программу, которая формирует одномерный массив случайных чисел, выполняет поиск максимального элемента массива, а затем выводит на экран его значение и порядковый номер в массиве.
В разделе описания запишем размер массива Count=20, опишем массив целых чисел М следующим образом: М: array [I..Count] of byte. Используем целые переменные для хранения значений максимального элемента массива - Мах, его индекса - Numer_Max.
Перед началом поиска максимального элемента допустим, что его первый элемент и является максимальным элементом, а его индекс указывает позицию максимального элемента в массиве.
Это запишется так:
Мах:= М[1]; {Считать 1-й,элемент максимальным}
Numer_Max:=1; {Запомнить номер максимального элемента}
Повторяющийся просмотр массива с поиском максимального элемента, начиная со второго, выполняется оператором повтора с параметром, который одновременно указывает индекс очередного элемента. Сравнение очередного элемента массива с максимальным осуществляется оператором: If M[I] > Max then…
|
|
Если очередной элемент массива больше, чем максимальный, то следует считать его значение максимальным и запомнить его индекс.
Данный фрагмент программы запишется таким образом:
for I:= 2 to Count do {Проверить все элементы, начиная со второго)
begin
if M[I] > Max then {Если очередной (I-й) элемент массива больше чем Мах}
begin
Max:= M[I]; {то считать максимальным 1-й элемент}
Numer_Max:=I; {и запомнить его порядковый номер}
end;
end;
В заключительной части программы запишем вывод результата поиска максимального элемента массива:
Writeln('Максимальный элемент — ', Мах);
Writeln('Он расположен на ', Numer_Max, ' месте');
Полный текст программы получится таким:
program Max_Elem; {Поиск максимального элемента массива}
Const
Count =20;
Var
M: array [I..Count] of byte;
Max, I, Numer_Max: byte;
Begin {Основная программа}
for I:=1 to Count do {ввод элементов массива}
begin
writeln('Введите ',i,' элемент массива');
readln(M[I]);
end; {конец ввода}
writeln('Введенный массив: ');
for I:=1 to Count do {вывод элементов массива}
begin
write(' ',M[I],' ');
end; {конец вывода}
Writeln;
Max:= M[1]; {Считать 1-й элемент максимальным}
Numer_Max:=1; {Запомнить номер максимального элемента}
for I:= 2 to Count do {Проверить все элементы, начиная со второго}
begin
if M[I] > Max then {Если очередной (I-й) элемент массива больше чем Мах}
begin
Max:= M[I]; {то считать максимальным 1-й элемент}
Numer_Max:=I; {и запомнить его порядковый номер}
end;
end;
Writeln('Максимальный элемент — ', Max);
Writeln('Он расположен на ', Numer_Max, ' месте');
еnd.