Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Вспомогательные алгоритмы
При построении новых алгоритмов могут использоваться алгоритмы, составленные раньше. Алгоритмы, целиком используемые в составе других алгоритмов, называют вспомогательными (или подчиненными) алгоритмами. Использование ранее составленных алгоритмов при составлении новых находит широкое применение в практике алгоритмизации. Составим алгоритм поиска большего из двух чисел (БИД):
Рассмотрим использование вспомогательного алгоритма при составлении основного. Составим алгоритм для поиска большего из трех чисел (БИТ). Чтобы найти большее из трех чисел, нужно сначала выбрать большее из двух любых чисел. Затем выбранное число сравнить с оставшимся числом и выбрать из них большее. Последнее число и будет большим из трех чисел. Значит для решения нашей задачи, мы должны дважды воспользоваться алгоритмом БИД (поиска большего из двух чисел). Построим алгоритм:
При записи шагов исполнения основного алгоритма, содержащего в себе вызов вспомогательного алгоритма, в таблице исполнения записываются только величины основного алгоритма. Если есть необходимость проследить исполнение вспомогательного алгоритма, то для каждое обращения к нему исполняется в своей таблице. Исполним алгоритм БИТ для чисел 3, 9, 5. Построим таблицу для исполнения алгоритма:
Проследим исполнение алгоритма БИД, для этого построим таблицу его исполнения:
При исполнении вспомогательного алгоритма в первый раз, мы переменной а присваиваем значение m, переменной b присваиваем значение n. У нас в таблицу вводятся данные 3 и 9. Переменной z алгоритма БИТ, присваивается значение переменной х алгоритма БИД. Во второй раз мы присваиваем а значение z, а переменной b значение k. Полученное значение переменной х алгоритма БИД присваиваем переменной y алгоритма БИТ. Так с помощью двукратного обращения к вспомогательному алгоритму мы находим, большее из трех чисел. При составлении алгоритма для нахождения большего из 4 чисел можно три раз обращаться к алгоритму БИД, а можно использовать алгоритм БИТ, как вспомогательный. При исполнении такого алгоритма нужно будет строить три таблицы для исполнения: 1) исполнение основного алгоритма; 2) исполнение вспомогательного алгоритма БИТ; 3) исполнение вспомогательного алгоритма БИД. Причем вспомогательный алгоритм БИД будет вызываться один раз основным алгоритмом и два раза вспомогательным алгоритмом БИТ. Рассмотрим оба случая. 1 случай (алгоритм БИД используется трижды в качестве вспомогательного):
Исполним алгоритм для чисел 2, 5, 8 и 3. Строим таблицу для основного алгоритма:
При исполнении основного алгоритма происходит трехкратное обращение к вспомогательному алгоритму БИД. Построим таблицу для его исполнения:
2 случай (используем алгоритм БИТ, как вспомогательный):
Исполним алгоритм для второго случая. При исполнении этого алгоритма, мы будем обращаться к алгоритму БИТ, а он при исполнении будет использовать в качестве вспомогательного алгоритм БИД. Для этого строим сначала таблицу для исполнения основного алгоритма:
Первое обращение идет к вспомогательному алгоритму БИТ. Строим таблицу для его исполнения:
Алгоритм БИТ дважды обращается к алгоритму БИД. Строим таблицу для исполнения алгоритма БИД:
Составим алгоритм поиска максимального элемента линейной таблицы:
Вопросы 1 Для чего нужны вспомогательные алгоритмы? 2 Как записывается команда вызова вспомогательного алгоритма? 3 Каков порядок исполнения основного алгоритма при использовании вспомогательных алгоритмов? 4 Может ли алгоритм, содержащий ссылку на вспомогательный, оказаться в роли вспомогательного?
|