Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цикл лабораторных работ по курсу.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.58 Mб
Скачать

7.3Структурное кодирование

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

Структурное кодирование — это метод написания хорошо структурированных программ, который позволяет получать программы, более удобные для тестирования, модификации и использования. Задача по созданию программы из базисных структур относится к полю деятельности программиста. Если он не в состоянии сделать это, подлежит сомнению его профессиональная компетенция.

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

1) последовательности двух или более операторов

2) выбора одной из двух последовательностей операторов (ветвление) (IF ELSE)

3) повторения последовательности операторов, пока выполняется некоторое условие (цикл WHILE)

Рис.1. Основные логические структуры (a — последовательность, b — выбор и c—повторение).

       На рис.1 показаны эти основные логические структуры. Комбинации правильных программ, полученные с использованием трех основных управляющих структур (последовательности, выбора и повторения), также являются правильными программами. Заметьте, что каждая структура имеет один вход и один выход. Можно получить программу любого размера и сложности, применяя итерацию и вложение этих основных структур. При использовании только указанных трех структур отпадает необходимость в безусловных переходах и метках. Каждая структура прослеживается от начала до конца без каких-либо ветвлений. Применение структурного программирования в значительной степени уменьшает сложность программ.         Структура последовательность — формализация того, что операторы программы выполняются в порядке их появления в программе, пока что-то не изменит эту последовательность. Тот факт, что последовательность является управляющей логической структурой, иногда упускается из виду. Структура выбор — это выбор одного из двух действий, исходя из выполнения некоторого условия; ей соответствует оператор IF ELSE. Структура повторения реализует повторное выполнение группы операторов до тех пор, пока выполняется некоторое условие. Итеративная управляющая структура приводится в действие оператором WHILE или FOR.         Существенным моментом является то, что при замене любого функционального прямоугольника в схеме правильной программы на любую из трех основных структур программа остается в классе правильных программ.

Рис. 2. Структура последовательность.

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

Рис. 3. Структура с вложением

       Хотя теоретически возможно написать все правильные программы, используя только три перечисленные выше основные логические структуры, мы увидим, что небольшое расширение этого базиса облегчит программирование. Введенные структуры должны иметь один вход и один выход. Обычно добавляют операторы DO WHILE, FOR и SWITCH.

На рис. 4 показаны эти две логические структуры.

Рис. 4. Операторы do-while и switch.

       Оператор do-while организует цикл, подобный циклу оператора while. Но существуют различия между этими операторами.         1. Цикл while оканчивается, когда условие ложно, а цикл do-while — когда условие истинно.         2. В цикле do-while условие проверяется после выполнения операторов цикла, так что операторы тела цикла выполнятся по крайней мере один раз.         Структура switch — это схема разветвления и соединения ветвей, которая используется для выбора одной из ветвей вычисления в зависимости от значения целого выражения.        Несколько уже рассмотренных ранее понятий необходимы для поддержания структурного программирования. Во-первых, логическая структура должна указываться отступами так, чтобы логические отношения в программе соответствовали позициям в листинге. Далее, программа должна быть разделена на группы команд (модули), которые легко охватываются. И наконец, программа должна быть организована таким образом, чтобы ее можно было читать от начала до конца без прерываний, обусловленных переходами.         Руководствуясь этими принципами при написании программ, можно существенно уменьшить их сложность, так как программы можно будет читать сверху вниз как печатный текст.

8Лабораторная работа 1. Создание, компиляция и отладка программ на С++ в MS Visual Studio.