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

UptoLike

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

152
приведенном здесь решении выбрана схема перебора по одному от последнего
элемента к первому. Ответ задачи будет храниться в счетчике совпавших
элементов. Исходя из приведенных рассуждений, можно предложить такой
вариант решения:
s:=0;
for i:=n downto 1 do
if a[i]=x then s:=s+1.
Пример 11.9. Найти максимальный элемент одномерного массива.
Решение. В этой задаче «действующие лица» - одномерный массив и его
максимальный элемент. Одномерный массив является исходным данным, а
максимальный элемент - результатом. Максимальный элемент массива будем
хранить в переменной max. Для его поиска достаточно каждый элемент массива
сравнить с max (max<a[i]). Начальным значением максимального элемента может
быть значение произвольного элемента массива, чаще всего для этой
цели
выбирают первый элемент. Исходя из этих соображений, получаем следующий
фрагмент программы:
const nn=100;
type mas=array [1..nn]of integer;
var a:mas; {исходный массив}
n:integer; {количество используемых элементов}
i:integer; {индекс массива}
max:integer; {максимальный элемент массива}
begin
max:=a[1];
for i:=2 to n do
if max<a[i] then max:=a[i];
writeln('максимальный элемент массива ',max);
end.
Упражнения:
1. Выполните трассировку фрагмента программы примера 11.9. Что получим в
ответе, если все элементы массива будут равны?
2. Как изменится работа программы, если оператор цикла будет заменен на for
i:=1 to n do? Какой из этих двух фрагментов будет работать быстрее? Почему?
3. Напишите фрагмент программы, в которой оператор в теле цикла остался
таким же, а схема просмотра
перебирала бы элементы от последнего к первому.
4. Пусть массив содержит несколько элементов, совпадающих по величине с
максимальным. Установите, какой по счету максимальный элемент найдет
приведенный в примере фрагмент алгоритма. Как изменится работа программы,
если в цикле заменить условие на max<=a[i]?
5. Напишите фрагменты программ для поиска минимального элемента в
одномерном массиве.
Попытаемся ускорить работу алгоритма поиска максимального элемента
одномерного массива. Для этого выберем схему просмотра массива по два
элемента. Тогда на каждом шаге цикла нужно будет выбрать максимальный
элемент из трех: max, a[i],a[i+1]. Соответствующий фрагмент алгоритма
приводится ниже:
                                     152

приведенном здесь решении выбрана схема перебора по одному от последнего
элемента к первому. Ответ задачи будет храниться в счетчике совпавших
элементов. Исходя из приведенных рассуждений, можно предложить такой
вариант решения:
    s:=0;
    for i:=n downto 1 do
       if a[i]=x then s:=s+1.
    Пример 11.9. Найти максимальный элемент одномерного массива.
    Решение. В этой задаче «действующие лица» - одномерный массив и его
максимальный элемент. Одномерный массив является исходным данным, а
максимальный элемент - результатом. Максимальный элемент массива будем
хранить в переменной max. Для его поиска достаточно каждый элемент массива
сравнить с max (max