Структурное программирование

      Комментарии к записи Структурное программирование отключены

Практика программирования показала необходимость научно обоснованной методологии разработки и документирования алгоритмов и программ. Эта методология должна касаться анализа исходной задачи, разделения ее на достаточно самостоятельные части и программирования этих частей по возможности независимо друг от друга. Такой методологией является структурное кодирование (программирование).

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

Свойство структурности операторов состоит в том, что каждый оператор имеет один вход и один выход. Программа, построенная из структурных операторов, называется структурированной.

Фундаментом структурного программирования является теорема о структурировании, которая устанавливает, что как бы сложна ни была задача, схема соответствующей программы всегда может быть представлена с использованием ограниченного числа элементарных управляющих структур.

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

1. Структура типа «следование» (рис.1.3а) – образуется последовательностью действий, S1, S2, …, Sn, следующих одно за другим: выполнить S1; выполнить S2; …; выполнить Sn. В линейном вычислительном процессе все операции выполняются последовательно в порядке их записи. Типовым примером такого процесса является стандартная вычислительная схема, состоящая из трех этапов:

1) ввод исходных данных;

2) вычисление по формулам;

3) вывод результата.

В языке Pascal такая структура заключается в операторные скобки Begin … End:

Begin S1; S2; … Sn; End

2. Структура типа «ветвление» (ЕСЛИ – ТО – ИНАЧЕ) (рис.1.3б) – обеспечивает в зависимости от результата проверки условия Р, принимающего одно из двух логических значении Да (True) или Нет (False), выбор одного из альтернативных путей работы алгоритма: если Р, то выполнить S1, иначе выполнить S2. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.

В языке Pascal такая структура имеет следующий формат:

If P Then S1 Else S2;

3. Структура типа «цикл с предусловием» (рис.1.3в) – обеспечивает многократное выполнение действия S в зависимости от того, какое значение принимает логическое условие Р: до тех пор, пока Р, выполнять S. Выполнение цикла прекращается, когда условие Р не выполняется.

В языке Pascal такая структура имеет следующий формат:

While P Do S;

В расширенный комплект элементарных алгоритмических структур дополнительно входят следующие управляющие конструкции (рис. 1.4).

4. Структура типа «сокращенное ветвление» (ЕСЛИ – ТО) (рис. 1.4а) – если результат проверки условия Р принимает значение Да (True), то выполняется действие S; в противном случае это действие пропускается и управление передается следующей структуре: если Р, то выполнить S1.

В языке Pascal такая структура имеет следующий формат:

If P Then S;

5. Структура типа «выбор – иначе» (рис. 1.4б) являются расширенным вариантом структуры типа ЕСЛИ – ТО – ИНАЧЕ. Здесь проверяемое условие Р может принимать не два логических значения, а несколько порядковых значений, например, 1, 2, …, n. Если Р = i, то будет выполняться действие Si. Если же значение Р будет выходить из диапазона допустимых значений, то выполняется действие S (в укороченном варианте «выбор» никакого действия не производится и управление передается к следующей структуре.

Case P Of

S1;

S2;

N: Sn

Else S

End

6. Структура типа «цикл с постусловием» (рис. 1.4в) – обеспечивает многократное выполнение действия S до тех пор, пока не выполняется условие Р.

В языке Pascal такая структура имеет следующий формат:

Repeat

S

Until P;

7. Структура типа «цикл с параметром» (рис. 1.4г) – обеспечивает заранее определенное многократное выполнение действия S. При этом здесь последовательно выполняются следующие типовые операции:

  • задание начального значения используемого параметра цикла (например, если переменной цикла является i, то ей присваивается значение i1, т.е. i:=i1);
  • выполнение действий S, предусмотренных в теле цикла;
  • изменение параметра цикла, который обеспечивает вычисление результата с новыми начальными данными (например, если параметр цикла i изменяется с шагом i3, i:=i+ i3);
  • проверка текущего значения параметра цикла с заданным конечным значением (i
  • переход к повторению тела цикла, если параметр цикла не превысил конечного значения, иначе — выполнение следующих действий или вывод результата.

В языке Pascal такая структура имеет следующий формат:

For Переменная:=i1 To (Downto) i3 Do S;

Рассматривая схему программы, можно выделить в ней части (фрагменты), достаточно простые и понятные по структуре. Представление этих фрагментов укрупненными блоками существенно облегчает восприятие алгоритма (а в дальнейшем и программы) в целом.

Структурные операторы обычно применяются уже на ранних стадиях нисходящего проектирования программы.

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

Структурированность программы может нарушаться операторами безусловного перехода GoTo. Бессистемное употребление этих операторов является источником многих ошибок, а также затрудняет восприятие и тестирование программы. В свое время даже возник термин «программирование без goto». Однако умеренное использование переходов в виде процедур break, continue и exit языка Pascal обычно упрощает программу.

Выводы

1. В основе структурного проектирования лежат принципы последовательной декомпозициизадачи и целенаправленного ее структурирования на отдельные составляющие. Методы структурного проектирования представляют собой комплекс технических и организационных принципов системного проектирования программных продуктов.

2. Постепенное уточнение проекта называется методом нисходящего проектирования (пошаговой детализации или проектирования сверху вниз). Средства достижения целей на предыдущем уровне превращаются в цели на нижнем.

3. Модульное программирование связано с проектированием сверху вниз и заключается в том, что программа разбивается на части, которые называются модулями и разрабатываются по отдельности.

4. Структурное программирование (кодирование) — это метод написания программ, имеющих определенную структуру. Он основан на использовании небольшого набора структурных операторов, правильность которых легко проанализировать и установить. При этом одни операторы состоят из других, вложенных в них.

Статьи к прочтению:

Основы программирования #4 Структурное программирование


Похожие статьи: