К. Поляков, Программирование на языке Паскаль Часть II Тема: Поиск максимального элемента массива
Программирование на языке Паскаль. Часть II К. Поляков, Максимальный элемент 2 Задача: найти в массиве максимальный элемент. Алгоритм: Псевдокод: { считаем, что первый элемент – максимальный } for i:=2 to N do if a[i] > { максимального } then { запомнить новый максимальный элемент a[i] } { считаем, что первый элемент – максимальный } for i:=2 to N do if a[i] > { максимального } then { запомнить новый максимальный элемент a[i] } Почему цикл от i=2 ? ?
Программирование на языке Паскаль. Часть II К. Поляков, Максимальный элемент 3 max := a[1]; { считаем, что первый – максимальный } iMax := 1; for i:=2 to N do { проверяем все остальные } if a[i] > max then { нашли новый максимальный } begin max := a[i]; { запомнить a[i] } iMax := i; { запомнить i } end; max := a[1]; { считаем, что первый – максимальный } iMax := 1; for i:=2 to N do { проверяем все остальные } if a[i] > max then { нашли новый максимальный } begin max := a[i]; { запомнить a[i] } iMax := i; { запомнить i } end; Дополнение: как найти номер максимального элемента? Как упростить? ? По номеру элемента iMax всегда можно найти его значение a[iMax]. Поэтому везде меняем max на a[iMax] и убираем переменную max. a[iMax]
Программирование на языке Паскаль. Часть II К. Поляков, Программа 4 program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; begin { здесь нужно ввести массив с клавиатуры } iMax := 1; {считаем, что первый – максимальный} for i:=2 to N do { проверяем все остальные} if a[i] > a[iMax] then { новый максимальный} iMax := i; { запомнить i } writeln; {перейти на новую строку} writeln('Максимальный элемент a[', iMax, ']=', a[iMax]); end. program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; begin { здесь нужно ввести массив с клавиатуры } iMax := 1; {считаем, что первый – максимальный} for i:=2 to N do { проверяем все остальные} if a[i] > a[iMax] then { новый максимальный} iMax := i; { запомнить i } writeln; {перейти на новую строку} writeln('Максимальный элемент a[', iMax, ']=', a[iMax]); end. iMax := 1; {считаем, что первый – максимальный} for i:=2 to N do { проверяем все остальные} if a[i] > a[iMax] then { новый максимальный} iMax := i; { запомнить i } iMax := 1; {считаем, что первый – максимальный} for i:=2 to N do { проверяем все остальные} if a[i] > a[iMax] then { новый максимальный} iMax := i; { запомнить i }
Программирование на языке Паскаль. Часть II К. Поляков, Задания 5 «4»: Заполнить массив из 10 элементов случайными числами в интервале [ ] и найти в нем максимальный и минимальный элементы и их номера. Пример: Исходный массив: максимальный a[4]=10 минимальный a[8]=-10 «5»: Заполнить массив из 10 элементов случайными числами в интервале [ ] и найти в нем два максимальных элемента и их номера. Пример: Исходный массив: максимальные a[4]=10, a[7]=8