Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на экзаменационные билеты_2 / Основ. декомпозиционные структуры программ

.txt
Скачиваний:
16
Добавлен:
28.06.2014
Размер:
3.01 Кб
Скачать
В основе операции декомпозиции задачи на подзадачи лежит принцип рас­крытия абстракции.
Абстрактной инструкцией, или просто абстракцией, назовем инструкцию, описывающую действие, выполнить которое процессор не может на данном уров­не проектирования. Другими словами, абстракция есть инструкция обращения к алгоритму, которого еще не существует. Этим абстрактная инструкция отличается от элементарной инструкции вызова процедуры, которая обращается к реаль­ной процедуре.
Абстрактная инструкция не может быть выполнена, так как ссылается на абстрактный алгоритм, который еще не разработан и который, в свою очередь, может тоже содержать абстракции.
Сегмент - это алгоритм, содержащий абстракции. Именно наличием абстракции объясняется свойство сегмента порождать другой сегмент.
Раскрытие абстракции состоит в разделении действия на композицию дру­гих, более простых действий с использованием введенных выше правил декомпо­зиции. Таким образом, нисходящее проектирование - это процесс раскрытия аб­стракций. Этот процесс можно свести к последовательности элементарных шагов, если связать каждый шаг с одной управляющей структурой : следование, выбор или повторение.
На каждом следующем уровне детализации логика работы модуля будет описываться все точнее и ближе к реальному алгоритму. Когда получим алго­ритм, у которого все абстракции раскрыты в элементарные инструкции языка проектирования, можно считать, что процесс разработки алгоритма завершен.
Общие принципы, ко­торых следует придерживаться на каждом шаге декомпозиции в процессе разра­ботки.
1. Концентрируйте внимание прежде всего на самом существенном, отвле­каясь от мелочей.
2. Прежде чем раскрыть абстракцию, оцените принятое решение, сравните с другими возможными вариантами декомпозиции.
3. Проведите тщательную спецификацию данных, требуемых на очередном уровне детализации алгоритма, это поможет принять вам правильное решение.
4. Если на каком-либо шаге встретились непредвиденные проблемы, поста­райтесь еще раз пересмотреть решения, принятые на предыдущих шагах, и, если требуется, заменить их на другие варианты.
Элементами декомпозиции задачи на подзадачи являются сегменты. Каж­дый сегмент является результатом раскрытия некоторой абстракции, заключенной в сегменте более высокого уровня.
На языке Паскаль будем описывать абстрактное действие в виде коммента­рия, обрамленного рамкой.
При раскрытии абстракции используются две формы сегмента: форму блока (сегмент - блок) и форму процедуры (сегмент - процедура).
Сегмент описывается в виде блока, если он не реализует типовой алгоритм, а выделен с целью облегчения анализа и разработки алгоритма. На языке Паскаль он может быть закодирован либо в виде фрагмента программы, который в даль­нейшем будет подставлен после порождающей его абстракции, либо в виде про­цедуры без параметров.
Сегмент описывается в виде процедуры, если он реализует типовой алго­ритм, который может носить универсальный характер. На языке Паскаль он реа­лизуется в виде процедуры с параметрами.