Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Информатике.doc
Скачиваний:
49
Добавлен:
15.04.2015
Размер:
257.54 Кб
Скачать

2. Модульное программирование

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

Основные свойства модуля: один вход и один выход; функциональная завершенность (желательно); слабые информационные и логические связи с другими модулями.

Этого можно добиться используя следующие рекомендации.

- Отделением ввода исходных данных от вычислений и от вывода результатов.

- Максимальным использованием стандартных подпрограмм и функций.

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

- Такими размерами модуля, чтобы его программное описание было обозримым - помещалось на одну страницу, т.е. составляло 40-60 операторов.

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

Рис. 1. Проектирование алгоритма методом декомпозиции.

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

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

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

3. Элементарные структуры

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

Рис. 2. Стандартные элементарные структуры.

а) следование, б) ветвление, в) цикл с предусловием, г) цикл с постусловием.

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

Рис. 3. Исходная блок-схема алгоритма.

4. Общие рекомендации построения алгоритмов

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

Рис. 4. Сопроводительные пояснения в блок-схемах алгоритмов.

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

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