Если пункты предписания изображать в виде прямоугольников, а зависимости – стрелочками, направленными в сторону зависимости, то алгоритму приготовления бутерброда будет соответствовать изображенная схема. (Интересно, что если в наличии имеются два ножа и соответствующее количество рук, то пункты а) и б) можно выполнять не только в любой последовательности, но и одновременно, и время приготовления бутерброда существенно уменьшится.)
В качестве примеров алгоритмов математического характера можно привести правила выполнения арифметических операций (сложения, вычитания, умножения, деления) над многозначными числами («столбиком»), правила выполнения таких же операций над простыми дробями, алгоритм Евклида (см. Евклида алгоритм), описания решений различных задач на построение в геометрии и т.д.
Рассмотрим алгоритм деления обыкновенных дробей.
Исходные данные: первая дробь (делимое), вторая дробь (делитель).
Искомый результат: дробь (частное).
Предписание:
а) числитель первой дроби умножить на знаменатель второй;
б) знаменатель первой дроби умножить на числитель второй;
в) записать дробь, числитель которой есть результат выполнения пункта а), а знаменатель - результат выполнения пункта б).
Все сказанное про последовательность выполнения пунктов в алгоритме приготовления бутерброда относится и к этому алгоритму.
Для того чтобы можно было изучать общие свойства алгоритмов, доказывать теоремы, нужно иметь строгое математическое определение этого термина. Такое определение удалось сформулировать сравнительно недавно советским ученым А. Н. Колмогорову и А. А. Маркову.
Вопросы, связанные с понятием алгоритма, выросли в последнее время в большую «теорию алгоритмов», потребность в которой вызвана появлением электронных вычислительных машин, станков с числовым программным управлением, промышленных роботов, автоматических линий и т.д. Во всех перечисленных случаях требуется создание алгоритмов выполнения машинами тех или иных операций, притом в таком порядке, который приводит к нужной цели. Эти алгоритмы зачастую бывают чрезвычайно сложными по структуре и для их выполнения компьютер должен сделать тысячи операций.
Если алгоритм предназначен для выполнения его на вычислительной машине, то он должен быть записан на языке, понятном этой машине. Такая запись алгоритма называется программой для ЭВМ, а язык, на котором написана программа, - языком программирования.
В процессе развития теории алгоритмов выяснилось, что существуют математические задачи, для которых невозможно составить общий алгоритм решения. Такие задачи получили название алгоритмически неразрешимых. Наиболее важные результаты в этой области принадлежат советскому математику П. С. Новикову.