На главную Самоучитель pascal Форум программистов онлайн Решение задач pascal Задачи pascal Поиск
17 Янв 14

Поиск элемента в массиве паскаль


Комментарии :  0        Просмотры :  15496


Мы знаем , что массив содержит в себе упорядоченные элементы данных , которые имеют свои значения и адреса.

Во многих задачах нам потребуется обрабатывать подобные массивы. Например : ( поиск наибольшего элемента , наименьшего элемента и т.п ). Алгоритм поиска элемента в массиве мы разберем в данном уроке.

Поиск максимального элемента в массиве

Чтобы разобраться в том , как осуществляется поиск элемента в массиве паскаль , мы разберем такую задачу :

Условие : С клавиатуры вводятся 5 целых чисел , требуется найти наибольший элемент ( наибольшее число ) и вывести его на экран.

Решение :
Код
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 целых чисел , требуется найти наименьший элемент ( наименьшее число ) и вывести его на экран.

Решение :
Код
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 целых чисел , требуется найти первый отрицательный элемент и вывести его на экран. Если отрицательных элементов нет , то ничего не выводить.

Решение :
Код
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] < 0 ) then
begin
writeln(a[i]);
break;
end;

end.

Разбор : В данной задаче мы будем сравнивать элементы массива с 0. Если элемент меньше 0 ( отрицательный ) , то выводим его на экран. Главное заметить , что нам нужен только первый отрицательный элемент ( выводить остальные не надо ) , поэтому после нахождения мы будем выходить из массива командой break.

Поиск отрицательного

Рейтинг материала : ( 4 / 8 )
Сообщить об ошибке
Комментарии :  0        Просмотры :  15496

Личный кабинет

Логин:
Пароль:

Поиск

RSS лента

Подписаться на rss


Подпишитесь на нашу ленту новостей rss и вы всегда сможете быть в курсе обновлений на нашем сайте.

Решение задач

Если вас интересует решение какой-либо задачи , то вы можете опубликовать
её условие на нашем сайте или форуме. И в скором времени другие пользователи помогут вам.

Опубликовать на сайте

Опубликовать на форуме

Опрос

Знаете ли вы другие языки программирования ?