Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Конструирование сложных алгоритмов




 

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

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

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

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

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

Чтобы построить такую таблицу, надо задать х значение х -нач и для этого фиксированного значения рассчитать и напечатать ряд значений f(x,y) для последовательности значений у от у -нач до у -кон. Затем изменить значение х на следующее и опять считать f(x,y) для всех значений у. И так до тех пор, пока не будет построена таблица для всех возможных пар х,у.

Алгоритм верхнего уровня для решения этой задачи представлен на рис.7 а). Он состоит из одного цикла. В блоке подготовки этого цикла задается начальное значение переменной х. В теле цикла стоит оператор печати текущего значения х и абстракция, которая раскрывается блок-схемой на рис. 7 б). Раскрытие этой абстракции представляет собой также циклический алгоритм, в котором изменяется переменная у, вычисляется и печатается значение функции f(x,y).

 

Рис. 7

 

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

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных