Наш разбойник будет дисциплинированно стоять на большой дороге в любую погоду и время суток до появления клиентов. А как только они появятся, он обязательно начнет операцию ограбления.
Алгоритм предполагает, что стрельба может быть только после начала операции ограбления. В реальной жизни ситуация будет не такой однозначной. Но это будет совсем другой алгоритм.
Даже из беглого взгляда на эту блок-схему видно, что она состоит всего из двух видов операций: работа – прямоугольник и выбор – ромбик. Меню развлечений (девочки, песни, драка) – это всего лишь компактная форма записи выбора из множества вариантов. Кроме того, в блок-схеме много стрелок, определяющих последовательность операций. Для описания алгоритма используются всего три алгоритмических конструкции: следование, развилка и цикл. Даже очень сложная программа, в том числе та, которая играет в шахматы, состоит из арифметических и логических операций, образующих сложную систему всего из трёх простых структур: следование, развилка и цикл.
Следование – последовательность операций, в которой завершение предыдущей операции однозначно обозначает переход к последующей (Ложиться спать – Спать – Проснуться; Идти грабить – Стоять на большой дороге).
Развилка – алгоритмическая структура, в которой исполнение или неисполнение определённого условия предыдущей операции определяет последующую операцию (уже темно? СЧВ >3? Моя очередь грабить? Появились клиенты? Стреляют?).
Цикл – алгоритмическая структура, обеспечивающая многократное повторение определённой совокупности операций (в блок-схеме: цикл всего поведения, цикл вставаний без умываний, цикл процесса ограбления и др.).
Кроме того, данная блок-схема включает в себя очень распространённую форму организации цикла – «счётчик» и особую форму выбора из множества вариантов – «меню»
Счётчик – циклическое накопление определяемого по заданной формуле числа. Например, СЧВ = СЧВ + 1. означает, что при каждом вставании в СЧВ добавляется 1. После выполнения своей функции счётчик очищается (обнуляется), т. е. в СЧВ записывается 0.
Меню – способ организации развилки с множеством вариантов перехода.
В обычной жизни мы постоянно пользуемся этими структурами. Просто не знаем их названий. Но это не меняет сути дела. А если скажите, что всё это слишком примитивно, что реальная жизнь значительно сложнее, будете правы. Алгоритм – это модель определенного процесса. А любая модель отражает лишь некоторые стороны моделируемого объекта. Значит, чем лучше автор алгоритма знает объект моделирования, тем лучше будет алгоритм. Кроме того, алгоритм разрабатывается для реализации в конкретной системе. Значит, его автор должен знать эту систему, например, самого себя. Алгоритм, описанный на языке и в терминах реализующей его системы, это уже программа. Значит, автор алгоритма – это и есть настоящий программист. А тот, кто описывает готовый алгоритм в командах ЭВМ или на человеческом языке – это кодировщик. Умение программировать – это дар божий! А как