Алгоритм - это формальное описание способа решения задачи путем разбиения ее на конечную по времени последовательность действий (элементарных операций).
Под словом "формальное" подразумевается, что описание должно быть абсолютно полным и учитывать все возможные ситуации, которые могут встретиться по ходу решения. Под элементарной операцией понимается действие, которое по заранее
определенным критериям (например, очевидности) не имеет смысла детализировать.
Основная идея алгоритмического программирования - разбиение программы на последовательность модулей, каждый из которых выполняет одно или несколько действий. Единственное требование к модулю - чтобы его выполнение всегда начиналось с первой команды и всегда заканчивалось на самой последней (то есть, чтобы нельзя было попасть на команды модуля извне и передать управление из модуля на другие команды в обход заключительной).
Одним из основных и наиболее сложных этапов решения задач на ЭВМ является этап алгоритмизации. Под алгоритмизацией понимают сведение решения задач к строгой последовательности взаимосвязанных и однозначно определенных действий. Результатом этапа алгоритмизации является алгоритм решения задачи.
К вычислительным алгоритмам предъявляется ряд требований.
Алгоритм должен обладать следующими свойствами:
- дискретностью,
- определенностью,
- результативностью,
- массовостью.
Под дискретностью понимают шаговый характер вычислительного процесса.
Определенность алгоритма означает, что каждый шаг его должен быть точен, общепонятен и однозначен в истолковании. Многократное применение алгоритма к одним и тем же исходным данным должно приводить к одинаковым результатам.
Результативность - это свойство алгоритма приводить к получению нужного результата за конечное число шагов. Заметим, что конечным результатом необязательно являются конкретные числовые значения. В качестве конечного результата может выступать сообщение о том, что задача при данных исходных значениях не имеет решения.
Массовость алгоритма обозначает возможность применения его для решения целого класса однотипных задач, отличающихся лишь исходными значениями.