Базовые структуры языков программирования

 

Понятие "структурное программирование" появилось в 1968 году, когда была опубликована статья одного из видных программистов того времени Дейкстры. Он в своей статье констатировал вредность применения оператора безусловного перехода (оператора, позволяющего сделать переход от одного оператора к другому, находящемуся в любом месте программы) и нашел хорошее объяснение причине, по которой он вреден.

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

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

Имеется четыре типа управляющих структур: следование, выбор, повторение (цикл) и группирование.

Для реализации следования есть правило: все команды выполняются в порядке их следования.

Для выбора и повторения есть свои специальные инструкции (операторы, команды). Выбор предусматривает проверку условия с последующим выполнением одной или нескольких команд в зависимости от истинности или ложности условия. Выбор (или развилка) бывает полный или неполный, в зависимости от выполняемых команд:


Рисунок 1. Полная развилка

Рисунок 2. Неполная развилка


Таким образом, конструкция работает следующим образом: при истинности условия выполняется Оператор1, в противном случае либо Оператор2, либо управление передается следующей за развилкой конструкции.

Повторение, или цикл, представляет собой конструкцию, которая состоит, как и выбор, из проверки условия и серии команд. Однако, в отличие от выбора, данная серия команд может выполняться неоднократно, в зависимости от проверки условия. Повторения подразделяются на циклы с предусловием (циклы - пока) и циклы с постусловием (циклы-до).


Рисунок 3. Цикл с предусловием

Рисунок 4. Цикл с постусловием


Тело цикла выполняется циклически до тех пор, пока условие истинно в первом случае и ложно - во втором.

Группирование означает объединение одной или нескольких инструкций внутри специальной инструкции. Во всех языках имеются средства для формирования единого блока из группы инструкций (подпрограммы в Бейсике, составные инструкции и процедуры в Паскале). Примером группирования может являться также выполнение в конструкциях циклов следования или выбора и т.д.