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