Home   Алгоритмы

Алгоритмы

Из статьи А.П. Ершова "Программирование - вторая грамотность"

Из статьи А.П. Ершова
«Программирование — вторая грамотность».

Алгоритм – это строгая инструкция для некоторого исполнителя, следование которой приводит к ожидаемому результату. Исполнителем может быть человек, робот, компьютер или любая другая система, имеющая возможность считывать информацию и исполнять необходимые действия. Алгоритм, понимаемый компьютером, называют программой. Соответственно, составление алгоритма – это алгоритмизация или написание программы в случае для машинного исполнителя.

Каждый дееспособный человек исполняет десятки различных алгоритмов за день. Например, порядок действий для приготовления завтрака – это тоже алгоритм. Мы не задумываемся над этим, но в нашей памяти хранится инструкция, которую мы сами так и называем «приготовить завтрак», куда входит весь список необходимых действий в определённой последовательности. Соблюдение гигиены, подбор одежды, перемещение до работы или учёбы и множество других рутинных действий – все это заученные и автоматически исполняемые нами алгоритмы.

Большинство людей выполняет огромное количество различной работы, не задумываясь, и не используя слова «алгоритм», «алгоритмизация» или «алгоритмическое мышление». Потому что исполнителями являемся мы сами, и развитый человеческий мозг обладает большой гибкостью при выполнении инструкции. Например, если мы обнаружим, что рубашка, которую собирались надевать грязная, то мы не наденем её, т. е. не свернём весь процесс, а мгновенно переключимся на поиск замены.

С компьютерами дело обстоит немного иначе. Прежде всего, следует понимать, что современный компьютер пока ещё только исполнитель. Компьютер ничего не придумывает, а выполняет строго предписанные команды. Даже если этот набор команд приведёт к аварийному выключению, повреждению программ или данных, машина все равно исполнит их. Для компьютера нет понятий «безопасного», «правильного», «очевидного» или «логичного». Есть только команды, которые предписано исполнить. По этому программисту при составлении алгоритма (написании программы) следует учитывать все нюансы настолько точно, насколько это требуют условия решаемой задачи.

Несмотря на то что происхождение слова «алгоритм» восходит к очень далёким временам, широкое применение оно получило только в ХХ веке с развитием электроники и цифровых технологий. В подавляющем большинстве случаев «алгоритмами» называют инструкции в области цифровых технологий (хотя название для книги рецептов «Алгоритмы праздничных блюд» звучит интригующе). И именно для того, чтобы научиться писать программы важно понять смысл понятий «алгоритм», «алгоритмизация» и «алгоритмическое мышление».

Алгоритмизация – это процесс разработки алгоритма. Алгоритмическое мышление – тип логического мышления, который применяется для алгоритмизации задач. Алгоритмическое мышление представляет собой совокупность знаний, методик и восприятия, необходимых для составления оптимальных алгоритмов. Мыслить алгоритмически – представлять себе достижение результата путём выполнения элементарных команд и операций в строго определённой последовательности.