Практическая осуществимость.

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

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

Любой алгоритм, если он предназначен для реализации на ЭВМ, должен удовлетворять следующим свойствам:

массовость;

детерминированность;

результативность;

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

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

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

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

Например, при определении значений функции у = х / (1 – х2), можно получить результаты для всех значений переменной х, кроме х = 1 (или х = -1). Следовательно, при составлении алгоритма решения уравнения на ЭВМ, необходимо предусмотреть прекращение расчетов при указанных значениях х и выдачу соответствующего сообщения.

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

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

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