Алгоритмизация

Алгоритм - понятное и точное предписание совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи

Термин алгоритм происходит от имени узбекского ученого Аль-Хорезми, который в своем труде «Арифметический трактат» изложил правила арифметических действий над числами в позиционной десятичной системе счисления. Эти правила и называли алгоритмами. Таким образом, изучаемые в школе правила сложения, вычитания, умножения, деления и т. д. - все это алгоритмы. Многие правила и инструкции представляют собой подробнейшие указания, годные во всевозможных ситуациях.

Виды алгоритмов как логико-математических средств в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:

механические алгоритмы, иначе детерминированные;
гибкие алгоритмы, иначе вероятностные и эвристические.

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

Эвристический алгоритм - это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий исполнителя. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и опыте решения схожих задач.

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

В процессе алгоритмизации исходный алгоритм разбивается на отдельные связанные части, называемые шагами или частными алгоритмами.

Различают четыре основных типа частных алгоритмов:

линейный алгоритм,
алгоритм в ветвлением,
циклический алгоритм,
вспомогательный или подчиненный алгоритм.

Линейный алгоритм - набор инструкций, выполняемых последовательно во времени друг за другом.

Алгоритм с ветвлением - алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.

Циклический алгоритм - алгоритм, предусматривающий повторения одного и того же действия над новыми исходными данными. Необходимо заметить, что циклический алгоритм легко реализуется посредством двух ранее рассмотренных типов алгоритмов.

Вспомогательный или подчиненный алгоритм - алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи.

На всех этапах подготовки к алгоритмизации задачи широко используется структурное представление алгоритма в виде блок-схем.

Блок-схема - графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок (линий перехода) блоков - графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока приведено описание совершаемых в нем действий.

Ниже приведены схемы основных конструкций алгоритмов:

a) линейный; б) циклический; в) с ветвлением.