На главную Самоучитель pascal Форум программистов онлайн Решение задач pascal Задачи pascal Поиск
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • 17 Янв 14

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


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


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

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

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

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

    Условие : С клавиатуры вводятся 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 / 9 )
    Сообщить об ошибке
    Комментарии :  0        Просмотры :  18105

    Поиск

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

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

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

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

    Опрос

    Какую разновидность паскаля вы предпочитаете ?