Типовые конструкции алгоритмов
Исполнитель алгоритмов
Задача составления алгоритма не имеет смысла, если не известны или не учитываются возможности его исполнителя, ведь выполнимость алгоритма зависит от того, какие действия может совершить исполнитель (СКИ – система команд исполнителя).
В качестве исполнителя алгоритмов можно рассматривать человека, любые технические устройства, среди которых особое место занимает компьютер. Компьютер может выполнять только точно определенные операции, в отличие от человека, получившего команду: "Купи чего-нибудь вкусненького" и имеющего возможность сориентироваться в ситуации.
Алгоритм обладает следующими свойствами
· Дискретность (от лат. discretus – разделенный, прерывистый) указывает, что любой алгоритм должен состоять из конкретных действий, следующих в определенном порядке. Образованная структура алгоритма оказывается дискретной: только выполнив одну команду, исполнитель сможет приступить к выполнению следующей.
· Детерминированность (от лат. determinate – определенность, точность) указывает, что любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. При этом каждая команда алгоритма входит в состав системы команд исполнителя.
· Конечность определяет, что каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения.
· Результативность требует, чтобы в алгоритме не было ошибок, т.е. при точном исполнении всех команд процесс решения задачи должен прекратиться за конечное число шагов и при этом должен быть получен определенный постановкой задачи результат (ответ).
· Массовость. Это свойство показывает, что один и тот же алгоритм можно использовать с разными исходными данными, т.е. применять при решении всего класса задач данного типа, отвечающих общей постановке задачи. Пример: алгоритмы "Решение квадратного уравнения", "Приготовить бутерброд".
Типовые конструкции алгоритмов
· Линейная.
· Циклическая.
· Разветвляющаяся.
· Вспомогательная.
Тип алгоритма определяется характером решаемой (в соответствии с его командами) задачи.
Линейный (последовательный) алгоритм – описание действий, которые выполняются однократно в заданном порядке.
Циклический – описание действий или группы действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Совокупность повторяющихся действий – тело цикла.
Разветвляющийся – алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий. Условие – выражение, находящееся между словом "если" и словом "то" и принимающее значение "истина" (ветвь "да") или "ложь" (ветвь "нет"). Возможна полная и неполная форма ветвления.
Вспомогательный – алгоритм, который можно использовать в других алгоритмах, указав только его имя. Вспомогательному алгоритму должно быть присвоено имя.