
- •Основы алгоритмизации и программирования Этапы решения задач на компьютере
- •Понятие алгоритма. Исполнители алгоритмов. Свойства алгоритмов
- •Типы алгоритмов и формы их представления
- •Разработка алгоритмов методом пошаговой детализации. Вспомогательный алгоритм
- •Разветвляющиеся алгоритмы. Команда ветвления
- •Циклические алгоритмы. Команда повторения
- •Примеры создания алгоритмов
- •Программирование
- •Языки программирования. Компиляция и интерпретация
- •Классификация языков программирования
- •Имя и значение переменной в программировании
- •Типы переменных в программировании
- •Объектно-ориентированный подход в информационных технологиях
- •Вопросы для самоконтроля
Разработка алгоритмов методом пошаговой детализации. Вспомогательный алгоритм
Эффективным методом построения алгоритмов является метод пошаговой детализации (последовательного построения). При этом сложная задача разбивается на ряд более простых. Для каждой подзадачи составляется свой, относительно решения основной задачи, вспомогательный алгоритм. Требования к ним продиктованы необходимостью, как решения подзадач, так и последующей их «стыковки» в основном алгоритме. Эти подзадачи могут, в свою очередь, потребовать разбиения на еще более простые задачи, и т.д. В результате некоторые вспомогательные алгоритмы могут стать основными по отношению к вспомогательным алгоритмам более низкого уровня. Основной алгоритм содержит команды обращения к вспомогательным алгоритмам. Процесс пошаговой детализации заканчивается, когда задачи очередного уровня окажутся совсем простыми. Метод пошаговой детализации универсален. Он применим для решения задач из разных областей жизни. Вспомогательные алгоритмы создаются, когда возникает необходимость разбиения задачина ряд более простых задач или когда есть необходимость многократного использованияодного и того же набора действий в одном или разных алгоритмах, вспомогательные алгоритмы, как уже отмечалось, должны быть состыкованы между собой в процессе «сборки» основного алгоритма. Для этого используют заголовки вспомогательных алгоритмов; с их помощью вызывают этот алгоритм (обращаются к его работе) из других вспомогательных или основного алгоритмов. При составлении и использовании вспомогательных алгоритмов важно знать, что является для них исходными данными (аргументами) и результатами. Иногда команды вызова вспомогательного алгоритма содержат указание на имена тех переменных, которые вносят в него исходные значения, а также переменных, в которые перед выходом из него попадут значения результата для дальнейшего использования вне вспомогательного алгоритма. Иногда результатом работы вспомогательного алгоритма может стать значение некоторой сигнальной переменной («флажка»), сообщающее об истинности какого-то условия или о наличии какого-либо факта. Записывая программу для компьютера на языке программирования, вспомогательные алгоритмы можно организовать, например, как подпрограммы. Правила обращения к ним и возврата из них в основную программу определяются конкретным языком программирования. Подпрограммы общего назначения могут объединяться в библиотеки подпрограмм, а иногда образовывать набор стандартных функций. Метод последовательной детализации путем разбиения задачи на подзадачи лежит в основе технологии структурного программирования и широко применяется при использовании структурных языков программирования, таких, как Паскаль или структурные версии Бейсика. Согласно концепции структурного программирования, вспомогательный алгоритм должен:
иметь заголовок (имя), с помощью которого его можно вызвать (обратится к нему, чтобы начать его выполнение) из вспомогательных или основного алгоритмов (это нужно для «состыковки» алгоритмов);
возвращать управление тому алгоритму, из которого он был вызван, т.е. после выполнения вспомогательного алгоритма должно продолжатся выполнение, вызвавшего его алгоритма с той точки, в которой он был прерван;
иметь возможность вызвать другие алгоритмы;
быть относительно небольшим;
иметь один вход (т.е. его выполнение всегда начиналось в одной точке, независимо от того, откуда и при каких условиях он был вызван) и один выход. Это гарантирует его замкнутость и упрощает работу с состыкованными алгоритмами;
обладать единственной функцией, что служит ключом к хорошо спроектированному итоговому алгоритму.
Таким образом, при проектировании основного алгоритма нужно сначала определить необходимый набор функций, а затем разработать вспомогательный алгоритмы. Методы последовательной детализации применяется при любом конструировании сложных объектов. Это естественная логическая последовательность мышления постановщика задачи: постепенное углубление в детали. Достаточно сложный алгоритм другим способом практически построить невозможно.