Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты информатика 11.DOC
Скачиваний:
5
Добавлен:
14.11.2018
Размер:
158.72 Кб
Скачать

Понятие алгоритма.

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

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

Исполнители алгоритмов

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

Таким образом, алгоритм, предназначенный для исполнения автоматом, должен обладать пятью свойствами:

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

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

  3. Детерминированность. Будучи понятным, алгоритм не должен содержать команды, смысл которых может восприниматься неоднозначно. (Взять две-три ложки сахара).

  4. Результативность. При точном исполнении всех команд алгоритма процесс решения задачи должен прекратиться за конечное число шагов и при этом должен быть получен определенный постановкой задачи ответ.

  5. Массовость. Предпочтительнее разрабатывать алгоритмы, обеспечивающие решение всего класса задач данного типа.

Типы алгоритмов

  1. Линейный тип алгоритма. Алгоритм, в котором команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий.

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

  3. Циклический тип алгоритма. Алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов).

Конструирование алгоритмов методом пошаговой детализации. Вспомогательный алгоритм.

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

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

Метод пошаговой детализации путем разбиения задачи на подзадачи лежит в основе так называемого структурного программирования.