Основные способы описания алгоритмов
К основным способам описания алгоритмов можно отнести следующие:
· словесно-формульный (пошаговый);
· структурный или блок-схемный;
· с помощью граф-схем;
· с помощью сетей Петри.
Перед составлением программ чаще всего используются словесно-формульный и блок-схемный способы.
Пошаговый (словесно-формульный) способ. Алгоритм записывается в виде текста с формулами по пунктам (шагам), определяющим последовательность действий. Каждый из шагов представляет собой вполне определенное законченное действие.
Пример описания алгоритма. Решение квадратных уравнений. Словесно-формульным способом алгоритм решения этой задачи может быть записан в следующем виде:
Шаг 1. Ввести три числа a, b, c.
Шаг 2. Вычислить дискриминант
Шаг 3. Проверить условие: если d<0, то идти на шаг 8, иначе идти на шаг 4.
Шаг 4. Вычислить 1-й корень
Шаг 5. Вычислить 2-й корень
Шаг 6. Вывести два числа x1, x2.
Шаг 7. Идти на шаг 9.
Шаг 8. Вывести текст "Уравнение не имеет действительных корней".
Шаг 9. Конец.
Блок-схема – это ориентированный граф, вершины которого могут быть одного из трех типов, представленных на рис. 13.1.
Функциональная вершина используется для представления функции f: X→Y.
Предикатная вершина используется для представления функции (или предиката) p: X→(T, F), то есть логического выражения, передающего управление по одной из двух возможных ветвей.
Объединяющая вершина представляет передачу управления от одной из двух входящих ветвей к одной выходящей ветви.
Структурная блок-схема – это блок-схема, которая может быть выражена как композиция из четырех элементарных блок-схем (рис. 13.1).
Любая программа для машины может быть представлена структурной блок-схемой.
|
|
| |||||||||||
Композиция (следование) | Выбор (ветвление) | Итерация (цикл) | |||||||||||
Рис. 13.1 – Базовые структуры алгоритма |
Важной особенностью приведенных выше структур является то, что они имеют один вход и один выход.
Структурное программирование – процесс разработки алгоритмов с помощью структурных блок-схем.
В более широком плане структурное программирование допускает большее разнообразие структур управления, чем предложенные четыре. Причиной для расширения множества структур является требование удобства и естественности.
Программирование сверху вниз – это процесс пошагового разбиения алгоритма на все более мелкие части с целью получения таких элементов, для которых можно написать конкретные команды. Структурное программирование сверху вниз – это процесс программирования сверху вниз, ограниченный использованием структурных блок-схем.
Структурное программирование является одной из технологий программирования, получившей наибольшее распространение. В нем наибольшее внимание уделяется этапу проектирования программы, при выполнении которого рекомендуется придерживаться следующих основных принципов, называемых принципами структурного программирования:
· принцип модульности;
· принцип нисходящей разработки программы;
· сквозной структурный контроль;
· принцип простой структуры программы.
Эти принципы, предложенные американскими специалистами фирмы IBM в конце ХХ века, остаются актуальными и в наше время, особенно при разработке больших и сложных программных комплексов.