Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_и_Пр_Бизнес_лекции.doc
Скачиваний:
85
Добавлен:
10.05.2015
Размер:
1.21 Mб
Скачать

7.3. Объявление объединения

Объединение – это составной тип данных, компоненты которых могут быть разных типов. Компоненты объединения размещаются с одного адреса памяти.

Синтаксис объявления типа «объединение»:

union имя_типа

{

объявление компонент

};

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

Пример объявления объединения:

union

{

int a[1000];

float b[2000];

};

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

8.1. Нисходящее проектирование и программирование

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

Метод нисходящего проектирования заключается в следующем:

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

  • Далее каждую подзадачу разбивают на свои подзадачи. После этого решение каждой подзадачи описывается в терминах выделенных из нее подзадач.

  • Такое разбиение выполняют до тех пор, пока каждая подзадача не станет элементарной.

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

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

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

  • Вначале кодируется модуль верхнего уровня, а модули нижнего уровня заменяются «заглушкам» – модулями, не выполняющими никаких действий. Выполняется тестирование и отладка модуля верхнего уровня.

  • Далее последовательно каждая «заглушка» первого уровня заменяется реальным кодом, а вызываемые из нее модули второго уровня заменяются «заглушками». Последовательно отлаживаются модули первого уровня.

  • Процесс последовательно применяется ко всем уровням программы.

Модульное программирование используется для достижения следующих целей:

  • уменьшения сложности программирования;

  • уменьшения размера программы за счет повторного использования кода: алгоритм решения некоторой подзадачи оформляется в виде одного модуля, который многократно вызывается для выполнения подзадачи с разными данными;

  • повышения надежности разработанной программы за счет автономного тестирования и отладки отдельных модулей, а также за счет повторного использования отлаженного кода модуля;

  • уменьшения срока разработки программы путем распараллеливания работы между несколькими программистами: программисты могут программировать разные выделенные подзадачи (модули) относительно независимо;

  • возможности использования кода разработанного модуля для других программ;

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

Для использования модульного программирования при кодировании программы на языке программирования, в том числе и на языке С++, надо знать:

  • как оформить алгоритм решения задачи в виде модуля;

  • где в программе должно находиться определение модуля;

  • как вызвать модуль для выполнения;

  • как передать в модуль данные на обработку и как получить из модуля результаты.

В языке С++ модули называются функциями.