Глава 9. Технология программирования вложенных циклов

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

Вычисления с вложенными циклами – процесс, в котором хотя бы один цикл расположен внутри другого.

Вложенный (внутренний) – цикл, расположенный внутри другого.

Внешний (наружный) – цикл, внутри которого располагаются другие циклы.

При многократном вложении циклов некоторые из них могут быть внутренними и внешними одновременно.

Разновидности вложенных циклов определяет форма их расположения (рис. 9.1).

Рис. 9.1. Разновидности вложенных циклов

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

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

Графические изображения различных вариантов вложений (сплошные линии – тело цикла, штриховые – передача управления) представлены следующими структурами:

· Последовательно вложенные циклы

Цикл 1 является внешним по отношению к 2 и 3. Цикл 2 является внешним по отношению к 3 и внутренним по отношению к 1. Цикл 3 является вложенным по отношению к 1 и 2.

Минимальное количество последовательно вложенных циклов – один.Максимальное – не ограничено.

· Последовательно вложенные циклы с общим основанием

Разновидностью последовательно вложенных циклов являются циклы с общим основанием.

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

Цикл 1 является внешним по отношению к 2 и 3. Цикл 2 является внешним по отношению к 3 и внутренним по отношению к 1. Цикл 3 является вложенным по отношению к 1 и 2. Общее основание – выход из цикла.

· Параллельно вложенные циклы

Цикл 1 является внешним по отношению к 2 и 3. Циклы 2 и 3 являются параллельно вложенными в 1.

Минимальное количество параллельно вложенных циклов – два. Максимальное – не ограничено.

· Смешанный (универсальный) вариант.

Цикл 1 является внешним по отношению к 2 и 3. Циклы 2 и 3 являются параллельно вложенными в 1.

Цикл 4 – последовательно вложен в цикл 3 и параллельно в цикл 2.

Максимальное количество вложений – не ограничено.

 

Правила работы с вложенными циклами:

· пересечение циклов запрещается;

· каждый из них составляется и выполняется как обычный цикл;

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

· передача управления из внешнего цикла во внутренний разрешается только естественным путём – через начало (заголовок) цикла. Другие варианты запрещаются ввиду нарушения выполнения внутреннего цикла;

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

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