Задача 48. Использование вспомогательных алгоритмов. Поиск минимальных элементов двух массивов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задача 48. Использование вспомогательных алгоритмов. Поиск минимальных элементов двух массивов



Условие задачи. Даны 2 массива, по n элементов в каждом. Найти разность минимальных элементов этих массивов.

По условию этого примера действия производятся с двумя массивами с одинаковым количеством элементов, причем в каждом массиве нужно найти минимальное значение. Поэтому можно выделить следующие вспомогательные алгоритмы: алгоритм ввода элементов одного массива определенного размера и алгоритм нахождения минимального элемента в одном массиве. Для проверки введенных исходных данных можно использовать вспомогательный алгоритм вывода на экран элементов одного массива. Каждый вспомогательный алгоритм выполняет строго определенную задачу. Тогда главный алгоритм будет управлять процессом решения задачи и вызывать нужные вспомогательные алгоритмы по 2 раза для каждого массива. Теперь необходимо организовать обмен данными (взаимосвязи) между главным и вспомогательными алгоритмами. Обычно обмен данными между вызывающим и вызываемым алгоритмами происходит через механизм формальных и фактических параметров. Вспомогательный алгоритм реализует решение задачи с помощью формальных параметров, это входные и выходные параметры вспомогательного алгоритма, по сути это абстрактные обозначения величин, участвующих в решении задачи. При обращении к вспомогательному алгоритму вместо формальных параметров указываются фактические, которые должны соответствовать формальным параметрам по типу, количеству и порядку следования.

Рассмотрим отдельно каждый из вспомогательных алгоритмов.

Задачей вспомогательного алгоритма ввода массива Inmas является ввод с клавиатуры значений элементов любого массива. Входной параметр у этого алгоритма - размер массива n. Выходным параметром является массив, назовем его Х. Это имя может быть любым и может совпадать с именем массива в главном алгоритме. Все формальные параметры локальны, т. е. доступны только внутри вспомогательного алгоритма. В нём описываются действия, которые позволят сформировать n элементов массива Х.

Задачей вспомогательного алгоритма вывода элементов массива Outmas является вывод на экран значений элементов любого массива. У этого алгоритма будут только входные параметры - массив Х и размер массива n. Выходных параметров у вспомогательного алгоритма Outmas не будет, т.к. новых значений в процессе работы алгоритма никакие переменные не получают. В этом алгоритме описываются действия, которые позволят вывести на экран n элементов массива X.

Ввод и вывод элементов массива, как правило, осуществляется в цикле, но это зависит от конкретной реализации (языка программирования).

Рассмотрим вспомогательный алгоритм нахождения значения минимального элемента в некотором массиве Min _ el. Формальными параметрами в этом вспомогательном алгоритме являются: входные - некоторый массив x и количество элементов этого массива n, выходной параметр – значение наименьшего элемента массива minx. Алгоритм поиска наименьшего элемента массива нам известен. В переменную minx поместим первый элемент массива minx =x[1]. Далее в цикле i=2, n, начиная со второго элемента массива до последнего, будем последовательно сравнивать каждый элемент массива с содержимым ячейки minx. Если очередной элемент массива x[i], окажется меньше, чем значение minx, то в переменную minx записывается элемент x[i] minx=x[i]. Далее будет проверяться следующий элемент массива. Так будет продолжаться n -1 раз, пока все элементы массива не будут проверены. В результате в ячейке minx будет находиться значение наименьшего элемента массива.

В вызывающем алгоритме main вводится размер массива и последовательно вызываются необходимые вспомогательные алгоритмы, далее вычисляется разность минимальных элементов и результат выводится на экран. Сначала с клавиатуры вводится количество элементов массива n, затем последовательно происходит обращение к вспомогательным алгоритмам. При вызове вспомогательного алгоритма в него передаются входные данные, по завершении из него в вызывающий алгоритм возвращаются выходные данные. Механизм передачи параметров описан выше, в разных языках он может различаться для входных и выходных данных. Но упрощенно можно себе представлять, что при вызове вспомогательного алгоритма формальные параметры заменятся на фактические, и все действия в нём будут производиться с полученными от главного алгоритма данными. При обращении к процедуре ввода массива c фактическими параметрами Inmas ( А,n) алгоритм будет заполнять массив А из n элементов. Затем производится обращение к тому же алгоритму ввода массива с фактическими параметрами Inmas ( В,n) для заполнения массива B из n элементов.

Далее дважды вызывается алгоритм нахождения минимальных элементов: первый раз в массиве А, второй – в массиве В. Входные формальные параметры алгоритма Min_ el массив Х, количество элементов n, результат -минимальный элемент min. Когда алгоритм Min_ el вызывается для первого массива А входными фактическими параметрами будут переменные А, n, результатом - min а (значение минимального элемента массива А). Для второго массива В входные фактические параметры - это B, n, а результатом будет min b - значение минимального элемента массива В. Затем в переменной Res вычислим разность минимальных элементов массивов mina и minb соответственно res = mina - minb, и полученное значение выводится на экран.

Структурированная запись вспомогательного алгоритма Inmas

Входной параметр: размер массива n, выходной параметр - заполненный массив;

1. Начало цикла С1 для i=1,n

1.1. Ввод элементов массива;

Конец цикла C 1

Структурированная запись вспомогательного алгоритма Out mas

Входные параметры: массив X и размер массива n;

1. Начало цикла С1 для i=1,n

1.1. Вывод элементов массива;

Конец цикла C 1

Схемы алгоритмов Inmas и Out mas

Структурированная запись вспомогательного алгоритма Min _ el

Входные параметры: размер массива n и массив Х, выходной параметр - наименьший элемент массива minx;

1. В переменную minx записывается первый элемент массива minx=Х[1];

2. Начало цикла i =2, n;

2.1. Проверка условия Х[i] < minx

2.1.1. Если условие выполняется, то в переменную minx записывается этот элемент массива minx=Х[i].

Конец цикла по i

Схема алгоритма

 



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 148; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.11.98 (0.006 с.)