Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛекцииЯзыки прогрИб.doc
Скачиваний:
27
Добавлен:
12.11.2019
Размер:
922.11 Кб
Скачать

Тема 13 Технология процедурного программирования

13.1. Способы конструирования программ

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

Метод функциональной декомпозиции

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

Метод модульной организации

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

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

Метод структурного программирования функций

Данный метод используется при программировании функций. Этот метод заключается в следующем:

- разделение функций на вложенные блоки, что позволяет локализовать переменные, структурировать функцию;

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

- форматирование текста функции: использование отступов для отображения вложенности объектов, применение идентификаторов, несущих смысл, и использование комментариев, что приводит к повышению читабельности программ и к облегчению их сопровождения; читается, что «тактика непрозрачности программ - плохая идея».

Рассмотрим способы конструирования программ методом процедурного программирования.

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

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

Для упрощения используются только структуры с единственным входом и единственным выходом, т.е. имеющие только одну точку входа и одну точку выхода. Это упрощает формирование структурированных программ последовательным соединением управляющих структур: выход одной структуры подключается непосредственно к входу следующей, т.е. управляющие структуры просто размещаются в программе одна за другой. Такой способ соединения называется «пакетированием управляющих структур». Правила конструирования структурированных программ позволяют также вкладывать структуры друг в друга.

Рассмотрим правила конструирования структурированных программ:

  1. Начинайте с простейшей блок-схемы.

  2. Каждый прямоугольник (действие) может быть замещен двумя последовательными прямоугольниками (действиями).

  3. Каждый прямоугольник (действие) может быть замещен любой управляющей структурой (следования, if, if/else, switch, while, do/while, for).

  4. Правила 2 и 3 могут применяться неограниченно и в любой последовательности.

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

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

Правило 3 называется правилом вложения. Повторное применение правила 3 к простейшей блок схеме приводит к блок-схеме исключительно вложенных управляющих структур. Например, прямоугольник простейшей блок -схемы сначала замещается структурой двойного выбор (if/else). Затем правило 3 снова применяется к обоим прямоугольникам в структуре двойного выбора, заменяя каждый из них новой структурой двойного выбора.

Правило 4 позволяет конструировать большие, сложные структуры с произвольным уровнем вложенности.

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

Преимущество структурного подхода в том, что мы используем всего семь структур с одним входом и одним выходом и соединяем их всего двумя простыми способами. Частично перекрывающиеся стандартные блоки не могут появиться в структурированных блок-схемах, поскольку игнорируется оператор goto.

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

Итак, мы рассмотрели, как составлять функции и программы из управляющих структур. Основной структурной единицей программ при процедурном программировании является функция.

Разработка программы задачи состоит из этапов постановки задачи, определения спецификаций, проектирования программы, реализация программы.