Что такое вложенный цикл информатика
§ 22. Вложенные и итерационные циклы
Если в теле одного цикла имеется другой цикл, то такая структура алгоритма называется вложенными циклами. Рассмотрим задачу, программа решения которой имеет структуру вложенных циклов.
Требуется получить на экране компьютера таблицу умножения в форме матрицы Пифагора. Блок-схема алгоритма будет следующей (рис. 3.17).
Рис. 3.17. Блок-схема алгоритма получения таблицы умножения
Здесь цикл по параметру у вложен в цикл по параметру х. Последовательность изменения значений параметров циклов такая:
Таким образом, внешний цикл исполнится 9 раз, а внутренний — 9 • 9 = 81 раз. На один шаг повторения внешнего цикла происходит полная прокрутка внутреннего.
При программировании вложенных циклов используется понятие глубины вложенности. В данном примере глубина вложенности внутреннего цикла равна единице. Если бы внутри вложенного цикла был еще один вложенный цикл (например, для вычисления всех вариантов перемножения трех сомножителей), то его глубина вложенности равнялась бы двум.
Программа на Паскале получения матрицы Пифагора:
В результате выполнения программы на экране получим:
Итерационные циклы
Итерационный цикл — это цикл, для которого число повторений тела цикла заранее неизвестно. В итерационных циклах на каждом шаге вычислений происходят последовательное приближение и проверка условия достижения искомого результата. Выход из итерационного цикла осуществляется в случае выполнения заданного условия.
Пример 1. Снова рассмотрим задачу вычисления суммы числового ряда:
Но теперь условие будет таким: в сумму нужно включить только слагаемые, значение которых больше некоторой малой величины 8. При этом полученная сумма будет отличаться от предельного значения (константы е) на величину, не большую ε.
Поскольку с увеличением значения i величина 1/i! уменьшается, в сумму надо включать все слагаемые, предшествующие первому значению, меньшему ε. Вот две программы решения этой задачи, использующие циклы с предусловием и постусловием:
Решить эту задачу, используя цикл с параметром, нельзя. Итерационные циклы программируются путем использования либо цикла-пока, либо цикла-до.
Пример 2. В § 17 была рассмотрена задача вычисления суммы цифр трехзначного натурального числа. Программа имела линейную структуру. Поставим задачу в более общем виде: для любого многозначного натурального числа вычислить сумму всех его цифр.
Выделение цифр происходит с помощью однотипных действий: использования операций mod и div. Очевидно, что их можно «зациклить». Однако число повторений цикла будет разным для чисел разной длины. Поэтому эта задача не решается с помощью цикла с заданным числом повторений. В таком случае в программе можно использовать либо оператор цикла While, либо Repeat и нельзя — цикл с параметром For. Программа с использованием цикла с предусловием:
Поскольку при каждом повторении цикла от числа X отбрасывается одна младшая цифра, закончить цикл нужно тогда, когда X станет равным нулю. Обратите внимание на типы переменных. Надо помнить о разнообразии групп типов в Паскале. Назначение переменной X типа Longint дает возможность вводить в нее значения, включающие до десяти знаков. Для переменной Sum назначен тип Word, поскольку сумма цифр может быть только положительным числом.
7.11. Что такое вложенные циклы?
Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (то есть количество вложенных друг в друга циклов) может быть различной.
При использовании такой структуры для экономии машинного времени необходимо выносить из внутреннего цикла во внешний все операторы, которые не зависят от параметра внутреннего цикла.
Пример вложенных циклов для
Вычислить сумму элементов заданной матрицы А(5,3).
нц для j от 1 до 3
S:=S+A[i,j]
кц
кц
Пример вложенных циклов пока
Вычислить произведение тех элементов заданной матрицы A(10,10), которые расположены на пересечении четных строк и четных столбцов.
i:=2; P:=1 нц пока i 10.06.2016. 7.4. В какой форме записываются алгоритмы? 7.5. Что такое словесный способ записи алгоритмов? 7.6. Что такое графический способ записи алгоритмов? к задачам из плаката § 8.10. Вложенные циклыСодержаниеСинтаксис вложенных цикловКогда на каждый шаг цикла необходимо выполнять некоторый набор инструкций другого цикла, применяется структура вложенных циклов. По отношению друг к другу эти циклы называются внешним и вложенным. Если условия циклов зависят от значения счетчиков, то создаются два счетчика: один для внешнего цикла, а другой для вложенного. При этом, значение счетчика вложенного цикла должно обнуляться (или получать значение по умолчанию) на каждом шаге внешнего цикла. Рассмотрим простой пример. Блок-схема Многократная вложенностьВ принципе, количество вложенных друг в друга циклов может быть неограниченно большим. Но на практике, количество вложенных циклов редко превосходит 4. Также, как и в случае с условной инструкцией, глубокую вложенность цикловых инструкций следует избегать, так как это увеличивает сложность алгоритма и значительно усложняет его читаемость. Возможный вывод Вывод по образцуСледует сказать, что условие вложенного цикла может зависеть от изменения переменных во внешнем цикле, например счетчика. Это может сделать программу более эффективной по количеству выполняемых шагов цикла и, возможно, избавиться от использования условной инструкции в теле цикла. Рассмотрим пример задачи, в которой реализуется такой подход. Символьная длина нижней стороны вводится с клавиатуры. Вывод при n = 10 см. выше. Вывод при n = 10 см. выше. Вывод при n = 9 см. выше. Вложенные циклы и целые числаПерсональная страничка |