Алгоритм – точная конечная последовательность команд, приводящая от исходных данных к искомому результату за конечное число шагов. (Слово происходит от имени великого математика IX в. Мухаммеда ибн Мусы аль-Хорезми.)
Поскольку каждый шаг алгоритма представляет собой действие (команду, которую нужно выполнить), он обязательно должен содержать командное слово – глагол. Существует ничем не оправданное мнение, что описание каждого шага должно начинаться именно с глагола. Такой подход возможен только для линейного алгоритма, а в более сложных случаях он может нанести непоправимый ущерб семантике построения фразы, а, значит, и понятности алгоритма.
На самом деле, такой упрощенный подход, строго говоря, неприемлем к алгоритмам в реальной жизни. Скорее следует говорить о том, что любой алгоритм можно разделить на отдельные части, каждую из которых можно однозначно отнести к одному из названных трех первых видов.
Описывает команды, следующие в определенной последовательности одна за другой и выполняемые только один раз.
Позволяет описать действия, которые выполняются в зависимости от условия. В простейшем случае, это ответ на вопрос «Да» или «Нет». Во всех языках программирования эта возможность реализована при помощи оператора ветвления If...[Else]...EndIf.
Может иметь как полную форму, когда действия описаны для обеих ветвей, так и частичную, когда действия производяться только для положительного либо, наоборот, только для отрицательного ответа.
В некоторых языках программирования могут использоваться специализированные циклы: для обхода всех элементов набора объектов (For Each) или для просмотра всех записей в таблице базы данных (Scan).
Во всех случаях построения циклического алгоритма нужно внимательно следить за тем, чтобы при его выполнении происходило корректное завершение. Одна из наиболее распространенных ошибок – создание бесконечного цикла, который не завершается никогда.
Так называют алгоритмы, целиком используемые в составе других алгоритмов. С точки зрения программирования, вспомогательный алгоритм является вершиной использования алгоритмического описания действий и реализован во всех языках в виде функций.
Целью самостоятельного описания может быть как избегание громоздкости записи, так и необходимость (реализация возможности) многократного повторного использования для выполнения других задач.
Описывает алгоритм на естественном языке, задавая шаги в виде последовательных пунктов. Не смотря на простоту этого способа, он имеет множество недостатков: отсутствие строгой формализации, толкование шагов не всегда однозначно, описание чрезмерно многословно. Классическим примером словесно-пошагового алгоритма являются рецепты приготовления блюд.
Оформление блок-схем должно производиться с соблюдением правил ГОСТа.