- •Составление блок схем
- •Содержание
- •Практическая работа 1
- •Составление блок схем
- •3.1.1 Основные понятия структур данных
- •3.2 Общие сведения об алгоритмах.
- •3.2.1 Свойства алгоритма
- •3.2.2 Виды алгоритмов и их реализация
- •3.2.3 Средства изображения алгоритмов
- •3.3 Этапы разработки программного продукта
- •3.4 Базовые алгоритмические структуры
- •4 Задания и алгоритм выполнения работы
- •Рекомендации по оформлению отчета.
- •Контрольные вопросы
3.2 Общие сведения об алгоритмах.
Алгоритмом называется система формальных правил, четко и однозначно определяющая процесс решения поставленной задачи в виде конечной последовательности действий или операций.
Алгоритм — это точное предписание, определяющее процесс перехода от исходных данных к результату.
Алгоритм — это конечная последовательность действий (команд) приводящая к определенному конкретному результату.
3.2.1 Свойства алгоритма
Свойства, которыми должен обладать алгоритм:
Конечность (финитность) алгоритма. Алгоритм должен приводить к решению задачи обязательно за конечное время. Последовательность правил, приведшая к бесконечному циклу, алгоритмом не является.
Другими словами - конечность — обязательное завершение каждого из действий, составляющих алгоритм, а также завершение выполнения алгоритма в целом;
Определенность,(Однозначность) или детерминированность, алгоритма. Это свойство означает, что неоднозначность толкования записи алгоритма недопустима.
Другими словами - однозначность — наличие единственного толкования правил выполнения действий и порядка их выполнения;
Результативность алгоритма. Под результативностью понимается доступность результата решения задачи для пользователя, иными словами, алгоритм должен обеспечить выдачу результата решения задачи на печать, на экран монитора или в файл.
Другими словами - результативность — получение при выполнении алгоритма определенного результата;
Массовость алгоритма. Это означает, если правильный результат по алгоритму получен для одних исходных данных, то правильный результат по этому же алгоритму должен быть получен и для других исходных данных, допустимых в данной задаче.
Другими словами - массовость — возможность применения алгоритма для решения целого класса задач (предполагается его правильная работа при меняющихся в заданных пределах значениях исходных данных);
Эффективность алгоритма. Под эффективностью алгоритма будем понимать такое его свойство (качество), которое позволяет решить задачу за приемлемое для разработчика время. К параметру, характеризующему эффективность алгоритма, следует отнести также объем памяти компьютера, необходимый для решения задачи.
Другими словами - правильность — способность алгоритма давать правильные результаты при решении поставленных задач.
3.2.2 Виды алгоритмов и их реализация
Алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий разработчика подразделяются следующим образом:
механические, или детерминированные (жесткие);
гибкие, или стохастические (вероятностные и эвристические).
Механический алгоритм задает определенные действия, обозначая их в единственной последовательности, обеспечивающей однозначный требуемый (искомый) результат в том случае, если выполняются условия процесса, для которых разработан алгоритм. К таким алгоритмам относятся алгоритмы работы машин, станков, двигателей и т. п.
Вероятностный (стохастический) алгоритм предлагает программу решения задачи несколькими путями или способами, приводящими к достижению результата.
Эвристический алгоритм (от греческого слова «эврика») — это такой алгоритм, в котором достижение конечного результата однозначно не определено, так же как не обозначена вся последовательность действий. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения похожих задач. При реализации эвристических алгоритмов большую роль играет интуиция разработчика.
В программировании алгоритмы подразделяются на три типа:
линейный — набор команд (указаний), выполняемых последовательно друг за другом;
разветвляющийся — алгоритм, содержащий хотя бы одну проверку условия, в результате которой обеспечивается переход на один Из возможных вариантов решения;
циклический — алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений и перебора вариантов.
Вспомогательный (подчиненный) алгоритм — алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи.