.: [предыдущая | оглавление | следующая] :.

1.4. Алгоритмы

Слово «алгоритм» произошло от арабского слова «Аль-Хорезми», имени среднеазиатского ученого, жившего в первом тысячелетии (приблизительно 825 г) в городе Хива (ныне Узбекистан) и написавшего книгу «Правила восстановления и преобразования». Когда говорят:"Алгоритм решения задачи",то подразумевают описание последовательности действий, приводящих к решению задачи.Толкование задачи может быть в самом широком смысле, например, приготовление пищи, открытие дверей, лечение больных кошек и т. д. Важный вопрос: "Всякое ли описание последовательности действий есть алгоритм?" Например, описание хаотического движения атомов не является алгоритмом. Для алгоритма присуще:

  1. описание исходных данных (условие задачи);
  2. описание результата (что нужно получить);
  3. описание шагов преобразования исходных данных в искомый результат;

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

Основные свойства алгоритма:

  1. определенность;
  2. конечность;
  3. массовость.

1.4.1. Способы записи алгоритмов

Существует достаточно большое разнообразие описания алгоритмов.Самый простой способ - это использовать обычный естественный язык.

Например, алгоритм решения квадратного уравнения:

Описание исходных данных:
дано a, b, c - параметры квадратного уравнения
Результат:
значения корней квадратного уравнения.
Шаг 1 вычисляет дискриминант квадратного уравнения.
Шаг 2 проверяем,если он отрицателен, то переходим на шаг 5, иначе шаг 3
Шаг 3 вычисляем корни квадратного уравнения.
Шаг 4 выводим значения найденных корней. Переход на шаг 6.
Шаг 5 выводим сообщение об отсутствии действительных корней.
Шаг 6 стоп.

Такое описание алгоритма дает преимущества на самых первых шагах разработки алгоритма. Одно из обстоятельств, необходимых для использования этого способа - формулировка и фиксация основных моментов и идей разрабатываемого алгоритма. Идея, написанная на бумаге, может существенно отличаться от той, которая была в уме!!!

Другой часто используемый способ записи алгоритма графический и основан на построении блок-схемы.

1.4.2. Блок-схемы

Блок-схема - это графическое представление алгоритма, состоящее из блоков и связей между блоками. Различают следующие блоки: Линейный блок,см.рис.1.2

Графическое представление линейного блока означает ,что у него есть один вход и один выход. Блок ветвления или условный блок имеет два варианта реализации. Рассмотрим первый вариант (см.рис.1.3). Входная стрелка указывает, что первым должны быть выполнены действия, записанные в ромбе. Как правило, в ромбе записывается некоторое условие, это условие может быть истинным или ложным, в зависимости от того, какое значение (истинное или ложное) будет определено в процессе выполнения алгоритма, происходит переход на левый линейный блок, или на правый. (Можно на соответствующей ветви ставить «да»,«нет» или 1 , 0.)

В тех случаях, когда один из блоков отсутствует, можно нарисовать следующую блок-схему

Рассмотрим блок-схему алгоритма вычисления суммы натурального ряда (1+2 +3+ ···+n )

Ведем обозначения :
Sum - переменная, накапливающая сумму;
I -текущий номер;
N - количество чисел.
Тогда блок-схема алгоритма будет следующая

Описание работы алгоритма по блок-схеме:
  • Блок 1 :обнуление переменных Sum ,I .
  • Блок 2 :наращивание I на единицу.
  • Блок 3 :проверка значения.
  • Блок 4 :вычисление суммы.
.: [предыдущая | оглавление | следующая] :.