В предыдущих главах рассмотрены варианты простых (одинарных) циклов и смешанных вычислительных процессов, объединяющих один внешний цикл с внутренним линейным и/или ветвящимся процессами. Это позволяет перейти к рассмотрению более сложных структур с вложенными циклами.
Вычисления с вложенными циклами – процесс, в котором хотя бы один цикл расположен внутри другого.
Вложенный (внутренний) – цикл, расположенный внутри другого.
Внешний (наружный) – цикл, внутри которого располагаются другие циклы.
При многократном вложении циклов некоторые из них могут быть внутренними и внешними одновременно.
Разновидности вложенных циклов определяет форма их расположения (рис. 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.
Максимальное количество вложений – не ограничено.
Правила работы с вложенными циклами:
· пересечение циклов запрещается;
· каждый из них составляется и выполняется как обычный цикл;
· передача управления из вложенного цикла в наружный разрешается, так как для вложенного цикла такая передача является искусственным выходом из цикла, а для внешнего – обычным ветвлением внутри него;
· передача управления из внешнего цикла во внутренний разрешается только естественным путём – через начало (заголовок) цикла. Другие варианты запрещаются ввиду нарушения выполнения внутреннего цикла;
· из вложенного цикла разрешается передача управления вне внешнего цикла с условием возврата в точку выхода. Такая передача используется при работе с подпрограммами.
Предмашинная подготовка вычислительных процессов с вложенными циклами детализировано рассмотрена ниже на конкретных примерах.