Любое, даже очень сложное решение задачи, может быть выражено алгоритмом, представляющим собой композицию следующих трех простых структур:
Структура a) – линейная. Действия выполняются последовательно – сначала выполняется фрагмент Ф1, затем фрагмент Ф2. Структура b) – выбор. В зависимости от истинностного значения логического выражения Усл выполняется либо фрагмент Ф1, либо фрагмент Ф2. Структура с) – цикл. Многократно повторяется фрагмент Ф1 – тело цикла, перед каждым последующим выполнением тела цикла выполняется фрагмент Ф2 – модификатор. Логическое выражение Усл является условием выхода из цикла.
Если Вы хотите записать решение задачи с помощью перечисленных схем, попробуйте изложить решение задачи на бытовом, разговорном языке. В изложении решения неминуемо будут использоваться такие конструкции, как «сначала … затем», «если … то … иначе …», «повторяем … пока …», или на них похожие. Эти конструкции определяют соответствующие элементарные структуры. Попробуйте определить самую внешнюю структуру Вашего алгоритма. Если это удастся, то алгоритм разобьется на два подалгоритма (Ф1 и Ф2), которые можно записывать независимо, как решение двух более простых задач.
Заметим, что элементарные структуры имеют единственный вход и единственный выход. Таким образом, элементарные структуры топологически совместимы, то есть, вместо любого фрагмента можно поместить любую структуру. Поэтому, записав подалгоритмы Ф1 и Ф2, мы можем записать и сам алгоритм, связав решения соответствующей структурой.
Построение алгоритма последовательным выделением самой внешней структуры лежит в основе методики нисходящего метода проектирования алгоритмов (детализация сверху вниз). Используя описанный выше подход, мы получаем решение задачи в виде композиции трех элементарных структур. Если иметь таблицу перевода каждой элементарной структуры на какой-нибудь алгоритмический язык, то легко получить запись всего алгоритма на этом алгоритмическом языке.