Алгоритм, составленный для некоторого исполнителя, можно представить различными способами: с помощью графического или словесного описания, в виде таблицы, последовательностью формул, записанным на алгоритмическом языке (языке программирования). Остановимся на графическом описании алгоритма, называемом блок-схемой. Этот способ имеет ряд преимуществ, благодаря наглядности, обеспечивающей, в частности, высокую «читаемость» алгоритма и явное отображение управления в нем.
Прежде всего, определим понятие блок-схемы. Блок-схема - это ориентированный граф, указывающий порядок исполнения команд алгоритма; вершины такого графа могут быть одного из трех типов (рис. 1.).
Рис. 1. Три типа вершин графа
На рис. 1. изображены «функциональная» (a) вершина (имеющая один вход и один выход); «предикатная» (б) вершина, имеющая один вход и два выхода (в этом случае функция Р передает управление по одной из ветвей в зависимости от значения Р (Т, т.е. true, означает «истина», F, т.е. false - «ложь»); «объединяющая» (в) вершина (вершина «слияния»), обеспечивающая передачу управления от одного из двух входов к выходу. Помимо указанных обозначений, вместо Т могут писать «да» (либо знак +), вместо F- «нет» (либо знак -).
Из данных элементарных блок-схем можно построить четыре блок-схемы (рис. 2), имеющих особое значение для практики алгоритмизации.
Рис. 2. Основные алгоритмические структуры
На рис. 2 изображены следующие блок-схемы:
а -композиция, или следование;
б -альтернатива, илиразвилка,
в иг - блок-схемы, каждую из которых называютитерацией, илициклом (с предусловием (в), с постусловием (г)).
S1 и S2 представляют собой в общем случае некоторые серии команд для соответствующего исполнителя, В - это условие, в зависимости от истинности (Т) или ложности (F) которого управление передаётся по одной из двух ветвей. Можно доказать, что для составления любого алгоритма достаточно представленных выше четырех блок-схем, если пользоваться их последовательностями и/или суперпозициями.
Блок-схема «альтернатива» может иметь и сокращенную форму, в которой отсутствует ветвь S2 (рис. 3, а). Развитием блок-схемы типа альтернатива является блок-схема «выбор» (рис. 3, б).
Рис. 3. Развитие структуры типа «альтернатива»;
о) - неполная развилка; б) - структура «выбор»
На практике при составлении блок-схем оказывается удобным использовать и другие графические знаки (рис. 4).
Рис. 4. Некоторые дополнительные конструкции для изображения блок-схем алгоритмов