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