Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лк04 Понятие алгоритма.doc
Скачиваний:
11
Добавлен:
07.07.2019
Размер:
159.23 Кб
Скачать

Свойства алгоритма

Для выполнения всякой работы, решения поставленной задачи исполнитель на входе получает алгоритм и исходные данные, а на выходе получаются требуемые результаты. Алгоритм может включать в себя только команды, входящие в СКИ. Это требование к алгоритму называется свойством понятности (исполнитель может выполнить только то, что понимает).

Другое свойство алгоритма – точность. Всякая команда должна быть сформулирована так, чтобы определить однозначно действие исполнителя. Например, кулинарный рецепт можно рассматривать как алгоритм для исполнителя-повара по приготовлению блюда. Но если одним из пунктов в нем будет написано: “Положить несколько ложек сахара”, то это пример неточной команды. Сколько ложек? Каких ложек (чайных, столовых)? Каждый повар может понимать по-своему, и результаты будут разными. Пример точной команды: “Положить две столовые ложки сахара”.

Эти два свойства можно объединить под одним свойством – определенности: каждый шаг алгоритма должен быть точно и однозначно определен.

Еще одно свойство, которое отражено в определение алгоритма – конечность. Оно формулируется так: исполнение алгоритма и, следовательно, получение искомого результата должно завершиться за конечное число шагов. Здесь под шагом подразумевается выполнение отдельной команды. Это свойство является отдельной команды.

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

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

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

Заметим, что данное свойство не является необходимым свойством алгоритма, а скорее определяет качество алгоритма: универсальный алгоритм лучше неуниверсального (алгоритм решения частной задачи – тоже алгоритм).

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

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

Алгоритм содержит ошибки, если его выполнение может привести к отказам, сбоям или неправильным результатам, либо вовсе не дает ни каких результатов. Эти ошибки называются алгоритмическими. (Например, вычисление корней квадратного трехчлена; вывод действительных чисел).

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