Конспект лекций по программированию для начинающих. Гладков В.П. - 151 стр.

UptoLike

Составители: 

153
const nn=100;
type mas=array [1..nn]of integer;
var
a:mas; {исходный массив}
n:integer; {количество используемых элементов}
i:integer; {индекс массива}
max:integer; {максимальный элемент массива}
begin
max:=a[1];
i:=1;
while i<=n do
begin
if a[i]<a[i+1]
then begin
if max<a[i+1]
then max:=a[i+1]
end
else begin
if max<a[i]
then max:=a[i]
end;
i:=i+2
end;
if n mod 2=1
then if max<a[n]
then max:=a[n];
writeln('максимальный элемент массива ',max);
end.
В данном фрагменте шаг цикла равен двум, поэтому массив будет просмотрен в
два раза быстрее, чем при схеме перебора по одному элементу.
Упражнение. Примените для решения данной задачи схему перебора
элементов по три. Какие выводы можно сделать относительно скорости работы
полученной программы и предыдущих программ? Обобщите ваши выводы на
случай перебора по m предметов.
Пример 11.10. Найти номер максимального элемента массива.
Решение. В задаче используются понятия массива и номера максимального
элемента. Обозначим массив так же, как в предыдущих примерах: номер текущего
элемента массива будем обозначать i, а номер максимального элемента - j. Как
обычно, для определения максимального элемента нужно сравнить каждый
элемент с максимальным. В выбранных обозначениях такое сравнение запишется
так: if a[j]<a[i] then j:=i. Поскольку нужно просмотреть все
элементы массива, то,
выбрав подходящую схему перебора, например, перебор по одному от первого
элемента к последнему, получим следующее решение задачи. Здесь начальное
значение номера максимального элемента выбрано равным 1, но оно может быть
любым от 1 до n.
j:=1;
                                       153

    const nn=100;
    type mas=array [1..nn]of integer;
    var
       a:mas; {исходный массив}
       n:integer; {количество используемых элементов}
       i:integer; {индекс массива}
       max:integer; {максимальный элемент массива}
    begin
       max:=a[1];
       i:=1;
       while i<=n do
       begin
               if a[i]