ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

1.2. Виды алгоритмов


Алгоритмы как логико-математические средства отражают различные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей её решения, определения действий исполнителя классифицируются следующим образом [2]:

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

  • гибкие алгоритмы:

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

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

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

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

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

    • вспомогательные алгоритмы (процедуры) – алгоритмы, ранее разработанные и целиком используемые при алгоритмизации конкретных задач.


Рассмотрим подробнее три основных вида алгоритмов: линейный, разветвляющийся и циклический.

Линейный алгоритм. Приведём пример записи алгоритма в виде блок-схемы, в виде программы на алгоритмическом языке и на языке Паскаль.

В качестве примера рассмотрим решение задачи вычисления среднего арифметического из двух чисел, вводимых с клавиатуры (рис. 1.2).


 

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

 

Рис. 1.3. Пример разветвляющегося алгоритма


Циклический алгоритм. Работу циклического алгоритма рассмотрим на примере нахождения суммы чётных чисел, находящихся в диапазоне от 0 до n (n вводится с клавиатуры) (рис. 1.4).

Рис. 1.4. Пример циклического алгоритма

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

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011