Контрольная работа: Структурное программирование
Структурное кодирование. Третьим составным элементом структурного программирования является структурное кодирование, которое представляет собой метод написания хорошо структурированных программных модулей, удобных для тестирования, модификации и использования. Метод предусматривает написание программных модулей произвольного размера и сложности на основе ограниченного множества базисных логических структур. Метод аналогичен принципу, положенному в основу проектирования схем, где любая логическая структура может быть создана из элементарных структур И, ИЛИ и НЕ. Структурное кодирование базируется на строго доказанной теореме о структурировании, которая утверждает, что любую правильную программу (с одним входом и одним выходом, без зацикливаний и недостижимых команд) можно написать с использованием следующих логических структур: последовательности двух или более операторов; выбора одного из двух операторов (IF THEN, ELSE); повторения (или управления циклом) оператора, пока выполняется некоторое условие (DO WHILE).
На рис. 2 показаны основные логические структуры: последовательности (рис. 2, а); выбора (рис. 2, б); повторения (рис. 2, в). Каждая структура имеет один вход и один выход. Комбинации правильных программ, полученные с использованием трех основных логических структур, также являются правильными программами. При использовании только указанных структур отпадает необходимость в безусловных переходах и метках. Применение структурного кодирования в значительной степени уменьшает сложность программ. Существенным моментом является то, что при замене любого функционального блока в схеме правильной программы на любую из трех основных логических структур программа остается в классе правильных программ. При структурном кодировании структура последовательности формализует тот факт, что операторы программы выполняются в порядке их появления, структура выбора - выбор одного из двух действий исходя из выполнения некоторого условия (оператор IF THEN, ELSE), структура повторения – выполнение группы операторов до тех пор, пока выполняется некоторое условие (оператор DO WHILE или итеративный DO).
Рис. 2
Хотя теоретически возможно написать все правильные программы, используя только перечисленные структуры, можно расширить это ограничение добавлением структур, имеющих один вход и один выход и формализующих операторы DO UNTIL и CASE.
Таким образом, чтобы получить структурированную программу, следует избегать операторов GO TO. Каждый программный модуль должен состоять из последовательности операторов IF, THEN, ELSE, циклов или операторов CASE. В случае, если язык не имеет достаточного количества языковых конструкций для структурного программирования (ФОРТРАН, КОБОЛ), рекомендуется применять операторы GO TO только для переходов вперед и там, где возможно заменять их операторами CALL или PERFORM. В языках ПЛ/1 и АЛГОЛ имеется большая часть рекомендованных конструкций, что позволяет легко писать структурированные программы.
Применение принципов структурного программирования позволяет существенно уменьшить сложность проектируемых комплексов программ и облегчить процесс их отладки за счет более детального проектирования. Основным преимуществом структурного программирования является то, что программа может быть проанализирована путем проверки структуры и становится возможным обнаруживать ошибки уже на этапе программирования, что значительно снижает затраты на процесс отладки.