Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП 2012-13 ПР1 Составление блок схем.doc
Скачиваний:
9
Добавлен:
25.11.2019
Размер:
2.93 Mб
Скачать

3.2 Общие сведения об алгоритмах.

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

Алгоритм — это точное предписание, определяющее про­цесс перехода от исходных данных к результату.

Алгоритм — это конечная последовательность действий (команд) приводящая к определенному конкретному результату.

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

Свойства, которыми должен обладать алгоритм:

  1. Конечность (финитность) алгоритма. Алгоритм должен приводить к решению задачи обязательно за конечное время. Последовательность правил, приведшая к бесконечному циклу, алгоритмом не является.

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

  1. Определенность,(Однозначность) или детерминированность, алгоритма. Это свойство означает, что неоднозначность толкования записи ал­горитма недопустима.

Другими словами - однозначность — наличие единственного толкования пра­вил выполнения действий и порядка их выполнения;

  1. Результативность алгоритма. Под результативностью пони­мается доступность результата решения задачи для пользователя, иными словами, алгоритм должен обеспечить выдачу результата решения задачи на печать, на экран монитора или в файл.

Другими словами - результативность — получение при выполнении алго­ритма определенного результата;

  1. Массовость алгоритма. Это означает, если правильный ре­зультат по алгоритму получен для одних исходных данных, то правильный результат по этому же алгоритму должен быть полу­чен и для других исходных данных, допустимых в данной задаче.

Другими словами - массовость — возможность применения алгоритма для решения целого класса задач (предполагается его пра­вильная работа при меняющихся в заданных пределах значениях исходных данных);

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

Другими словами - правильность — способность алгоритма давать правиль­ные результаты при решении поставленных задач.

3.2.2 Виды алгоритмов и их реализация

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

  • механические, или детерминированные (жесткие);

  • гибкие, или стохастические (вероятностные и эвристические).

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

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

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

В программировании алгоритмы подразделяются на три типа:

  • линейный — набор команд (указаний), выполняемых последовательно друг за другом;

  • разветвляющийся — алгоритм, содержащий хотя бы одну проверку условия, в результате которой обеспечивается переход на один Из возможных вариантов решения;

  • циклический — алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К цикличе­ским алгоритмам сводится большинство методов вычисле­ний и перебора вариантов.

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