Основы алгоритмизации и программирования. Часть вторая. Типовые алгоритмы обработки массивов. Асламова В.С - 16 стр.

UptoLike

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

31
Можно в качестве эталона при поиске максимального значения
взять самое минимальное число, которое возможно в алгоритмическом
языке Turbo Pascal, а при поиске минимального значениясамое
максимальное число. В этом случае
значение эталонной переменной
переопределится уже при сравнении с
первым элементом последовательности.
Обозначим исследуемую
последовательность массивом X[1], X[2], …,
X[n]; iномер текущего элемента масс
ива;
имя эталонной переменной через m.
Отметим, что все действия поиска
выполняются одинаково для всех элементов
массива. Следовательно, основой алгоритма
будет цикл. Блок схема алгоритма поиска
минимального элемента представлена на
Рисунке 18. Возьмем в качестве эталона
первый элемент массива X[1]. В этом случае
цикл нужно начинать со второго элемента и
проверять усло
вие, чтобы номер текущего
элемента не превысил размерности n
массива X[ i ]. Затем сравниваем значение
текущего элемента массива X[ i ] со
значением эталона m. Далее переопределяем
значение эталона, если выполняется условие
m > X[ i ]. Затем осуществляем переход к
следующему элементу массива. После
просмотра всего массива выводим на печать
значение минимального элемента массива,
кот
орое хранится в переменной m.
Рисунок 18. Блок-схема алгоритма
поиска минимального элемента
НАЧАЛО
Ввод n
i:=1, n
Ввод X( i )
m:= X( 1 )
i:=2
i>n
m>X( i )
m:= X( i )
i:=i + 1
КОНЕЦ
Печать m
нет
да
да
нет
32
Поиск номера минимального элемента
Обратимся к листу опорного сигнала 2 (Рисунок 17.). Ящик
клубники разбит на ячейки. Каждая ячейка имеет порядковый номер. Нас
интересует номер ячейки k, где лежит самая маленькая клубника. Ясно,
что для определения номера мы все равно должны искать минимальный
элемент по алгоритму первой задачи, добавив туда запо
минание номера
ячейки, из которой берется клубника, меньшая эталонной. Тогда
параллельно с изменениемразмера рамкибудет меняться запоминаемый
номер ячейки k. В конце цикла значение k будет равно номеру ячейки, в
которой находится наименьшая клубника.
Поиск номера и значения минимального элемента
в массиве с совпадающими значениями
В случае поиска с совпадающими э
лементами следует оговорить
особо, какой именнопервый или последнийиз одинаковых элементов
считать искомым. Обратимся к листу опорного сигнала 2 (Рисунок 17.).
Данная задача поясняется поиском первой самой большой клубники (или
последней из самых больших клубник). Арабские цифры 1, 2, 3, …
указывают на порядок следования клубник одинаковой величины.
Структура алгоритма в любой постановке задачи остаетс
я
неизменной, отличие отражается только на сравнении эталона с текущим
элементом массива. Поясним сказанное на конкретном числовом примере
(Таблица 1.).
Таблица 1. Массив с совпадающими элементами
Номер элемента
1 2 3 4 5 6 7 8 9
Последовательность
1
1
20
1
2
2
1
7 5
2
2
8
1
3
Индексы показывают порядок следования совпадающих элементов.
Блок-сема алгоритма поиска первого минимального элемента и его номера
в последовательности с совпадающими элементами приведена на
Рисунке 19.
Программа 11. Поиск минимального элемента
и его номера (все элементы разные)
Var I, n, min, k: integer;
Type mass=array[1 . . 50] of integer;
Var X:mass;
      Можно в качестве эталона при поиске максимального значения
взять самое минимальное число, которое возможно в алгоритмическом        Поиск номера минимального элемента
языке Turbo Pascal, а при поиске минимального значения – самое                 Обратимся к листу опорного сигнала №2 (Рисунок 17.). Ящик
                          максимальное число. В этом случае              клубники разбит на ячейки. Каждая ячейка имеет порядковый номер. Нас
       НАЧАЛО                                                            интересует номер ячейки k, где лежит самая маленькая клубника. Ясно,
                          значение       эталонной     переменной
                          переопределится уже при сравнении с            что для определения номера мы все равно должны искать минимальный
        Ввод n                                                           элемент по алгоритму первой задачи, добавив туда запоминание номера
                          первым элементом последовательности.           ячейки, из которой берется клубника, меньшая эталонной. Тогда
                                   Обозначим              исследуемую    параллельно с изменением “размера рамки” будет меняться запоминаемый
        i:=1, n                                                          номер ячейки k. В конце цикла значение k будет равно номеру ячейки, в
                            последовательность массивом X[1], X[2], ,
                                                                         которой находится наименьшая клубника.
                            X[n]; i – номер текущего элемента массива;
      Ввод X( i )           имя эталонной переменной через m.            Поиск номера и значения минимального элемента
                            Отметим, что все действия поиска             в массиве с совпадающими значениями
                            выполняются одинаково для всех элементов           В случае поиска с совпадающими элементами следует оговорить
      m:= X( 1 )            массива. Следовательно, основой алгоритма    особо, какой именно – первый или последний – из одинаковых элементов
                            будет цикл. Блок схема алгоритма поиска      считать искомым. Обратимся к листу опорного сигнала №2 (Рисунок 17.).
         i:=2               минимального элемента представлена на        Данная задача поясняется поиском первой самой большой клубники (или
                                                                         последней из самых больших клубник). Арабские цифры 1, 2, 3,
                            Рисунке 18. Возьмем в качестве эталона       указывают на порядок следования клубник одинаковой величины.
                      да    первый элемент массива X[1]. В этом случае
         i>n
                                                                               Структура алгоритма в любой постановке задачи остается
                нет         цикл нужно начинать со второго элемента и
                                                                         неизменной, отличие отражается только на сравнении эталона с текущим
                      нет   проверять условие, чтобы номер текущего
       m> X( i )                                                         элементом массива. Поясним сказанное на конкретном числовом примере
               да           элемента не превысил размерности n           (Таблица 1.).
                            массива X[ i ]. Затем сравниваем значение
      m:= X( i )                                                         Таблица 1. Массив с совпадающими элементами
                            текущего элемента массива X[ i ] со
                            значением эталона m. Далее переопределяем    Номер элемента               1    2     3    4    5   6   7    8   9
       i:=i + 1             значение эталона, если выполняется условие   Последовательность           11   20    12   21   7   5   22   8   13
                            m > X[ i ]. Затем осуществляем переход к           Индексы показывают порядок следования совпадающих элементов.
                            следующему элементу массива. После           Блок-сема алгоритма поиска первого минимального элемента и его номера
      Печать m              просмотра всего массива выводим на печать    в последовательности с совпадающими элементами приведена на
                            значение минимального элемента массива,      Рисунке 19.
       КОНЕЦ                которое хранится в переменной m.             Программа 11. Поиск минимального элемента
                                                                         и его номера (все элементы разные)
Рисунок 18. Блок-схема алгоритма
поиска минимального элемента                                             Var I, n, min, k: integer;
                                                                         Type mass=array[1 . . 50] of integer;
                                                                         Var X:mass;


                                                                   31    32