
Мы знаем , что массив содержит в себе упорядоченные элементы данных , которые имеют свои значения и адреса.
Во многих задачах нам потребуется обрабатывать подобные массивы. Например : ( поиск наибольшего элемента , наименьшего элемента и т.п ). Алгоритм поиска элемента в массиве мы разберем в данном уроке.
Поиск максимального элемента в массиве
Чтобы разобраться в том , как осуществляется поиск элемента в массиве паскаль , мы разберем такую задачу :
Условие : С клавиатуры вводятся 5 целых чисел , требуется найти наибольший элемент ( наибольшее число ) и вывести его на экран.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
program mypascal; var a: array[1..5] of integer; i,max:integer; begin for i:= 1 to 5 do read(a[i]); max:= a[1]; for i:= 2 to 5 do if ( a[i] > max ) then max:= a[i]; writeln(max); end. |
Разбор :
В блоке var объявляем массив «а». Диапазон индексов от 1 до 5 , так как максимальное количество введенных чисел = 5 ( исходя из условия задачи ). Тип переменных integer ( вводятся целые числа ).
Также нам понадобятся ещё две переменные «i» и «max». Переменная i будет играть роль счетчика для цикла , а переменная max будет хранить в себе максимальное значение элемента в массиве.
В начале программы создаем цикл , который будет заносить значения вводимые с клавиатуры в наш массив.
Далее присваиваем переменной max значения первого элемента массива. Возможно у вас возникает вопрос для чего это делается ? ведь первый элемент массива может и не быть наибольшим , более того , он может быть наименьшим. Это делается для того , чтобы иметь «точку отправления» , с которой мы будем сравнивать все остальные элементы в массиве.
В следующем цикле мы будем проверять все элементы в массиве ( из условия 5 ). Проверять нужно все элементы массива , так как мы не знаем где находится наибольший. Но начинать мы будем со 2 , так как первый элемент уже занесен в максимум и сравнивать одинаковые числа не имеет смысла.
Представим , что мы заполнили наш массив так : 4 17 -5 0 8 , тогда переменная max = 4 ( так как a[1] = 4 ).

Во время сравнения двух элементов max и a[i] выполняется условие ( a[i] > max ). Если условие истинно ( какой-либо элемент массива больше max ) , то переменной max присваивается значение этого элемента ( a[i] ).
Второй элемент массива больше переменной max , поэтому max присваивается значение 17.

При дальнейших сравнениях в массиве , не найдены элементы большие 17 , поэтому max остается неизменным.
В конце программы выводим max на экран ( 17 ).
Поиск минимального элемента в массиве
Условие : С клавиатуры вводятся 5 целых чисел , требуется найти наименьший элемент ( наименьшее число ) и вывести его на экран.
Решение :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
program mypascal; var a: array[1..5] of integer; i,min:integer; begin for i:= 1 to 5 do read(a[i]); min:= a[1]; for i:= 2 to 5 do if ( a[i] < min ) then min:= a[i]; writeln(min); end. |
алгоритм поиска минимального элемента массива почти полностью аналогичен алгоритму поиска максимального. Отличие заключается только в условии внутри второго цикла.
Поиск отрицательного элемента массива
Условие : С клавиатуры вводятся 5 целых чисел , требуется найти первый отрицательный элемент и вывести его на экран. Если отрицательных элементов нет , то ничего не выводить.
Решение :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
program mypascal; var a: array[1..5] of integer; i:integer; begin for i:= 1 to 5 do read(a[i]); for i:= 1 to 5 do if ( a[i] < ) then begin writeln(a[i]); break; end; end. |
Разбор : В данной задаче мы будем сравнивать элементы массива с 0. Если элемент меньше 0 ( отрицательный ) , то выводим его на экран. Главное заметить , что нам нужен только первый отрицательный элемент ( выводить остальные не надо ) , поэтому после нахождения мы будем выходить из массива командой break.