Алгоритмы #
Как в литературе, по мнению Кристофера Букера, есть только семь основных сюжетов1, так и в программировании базовых алгоритмов всего три. Это те “кубики”, из которых создаются программы.
На самом деле их больше, но здесь ситуация схожа с описанием свойств алгоритмов – многие из них являются частными случаями существующих и не вполне понятно, почему авторы учебных пособий выделяют для них особое место в классификации.
Линейный #
В линейном (последовательном) алгоритме команды выполняются последовательно. Одна за другой, всегда одинаково.
действие 1
действие 2
действие 3
Шаг вперёд-назад, влево-вправо! Шаг вперёд-назад, влево-вправо!
Шаг вперёд-назад! Шаг вперёд-назад! Шаг вперёд-назад!.2
Условный (ветвление) #
При помощи ветвления можно задать разное поведение программы в разных условиях.
ЕСЛИ условие ТО
действие
ИНАЧЕ
другое действие
К сведению: отступы не имеют никакого значения и использованы исключительно для наглядности3.
Условие - это логическое выражение, исчислимая формула. Всю теорию множеств можно уместить в вычисление логических выражений, но нам сейчас важно только то, что результатом этого вычисления будет 1 или 0. В первом случае выполнится “команда”, во втором - “другая_команда”.
Если ясный день - это хорошо,
А когда наоборот - плохо. 4
Цикл #
Циклический алгоритм позволяет выполнять команды многократно. Сколько именно - зависит от условия повторения. В циклах с предусловием сначала проверяется условие, потом выполняется команда. В циклах с постусловием сначала выполняется команда, а потом проверяется условие.
ПОКА 0 ВЫПОЛНЯТЬ действие --> не выполнится
ВЫПОЛНЯТЬ действие ПОКА 0 --> выполнится один раз
Во время исполнения действия условие может измениться. В первом случае на исполнение алгоритма это не повлияет.
– А еще есть “синий цикл”…
– А почему он синий?
– Потому что - до посинения.5
ПОКА 1 ВЫПОЛНЯТЬ действие --> будет выполняться вечно
ВЫПОЛНЯТЬ действие ПОКА 1 --> будет выполняться вечно
На самом деле, безусловный цикл скорее исключение, ведь в этом случае нарушается одно из свойств алгоритма – конечность. Поэтому там, где есть безусловный цикл, все равно есть условие выхода каким-нибудь нестандартным способом. Например, отключением питания.