
Циклы, вложены друг в друга, как "матрешки".
Цикл, содержащий в себе другой цикл, называют внешним циклом.
А цикл, содержащийся в теле другого цикла, называют внутренним циклом.
Внешние и внутренние циклы могут быть:
- с предусловием while
- с постусловием repeat
- с параметром (счетчиком) for
!Все операторы внутреннего цикла должны располагаться в теле внешнего цикла.!
For <счетчик 1>:=<начальное знач.> To <конечное знач.> Do <тело цикла 1>;
For <счетчик 2>:=<начальное знач.> To <конечное знач.> Do <тело цикла 2>;
…
For <счетчик n>:=<начальное знач.> To <конечное знач.> Do <тело цикла n>;
…
For <счетчик n>:=<начальное знач.> To <конечное знач.> Do <тело цикла n>;
Так цикл 2 относительно цикла 1 является внутренним, а для цикла n он внешний.
Принцип работы вложенных циклов заключается в следующем. Сначала один раз выполняется цикл, идущий первым в программе, затем управление передается следующему циклу (№2), и если после него нет никаких других циклов, то он прокручивается до конца и снова единожды выполняется внешний цикл, иначе, если после цикла №2 стоит еще один вложенный цикл, то №2 выполняется один раз, передавая управление циклу идущему после него. Такой алгоритм продолжается до тех пор, пока самый внешний цикл не выполниться необходимое количество раз.
ПРИМЕР:
Задание: напечатать числа в виде следующей таблицы
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
Данная таблица состоит из четырех строчек, в каждой из которых число 3 напечатано 5 раз. Строчку из пяти чисел можно напечатать с помощью одного цикла for:
for
i:=
1
to
5
do
write
(
3
,
' '
);
Чтобы повторить вывод строчки 4 раза, вставляем этот цикл внутрь другого:
for
k:=
1
to
4
do
{4 раза делаем то, что написано между begin’ом и end’ом}
begin
for
i:=
1
to
5
do
write
(
3
,
' '
);
{Выводим одну строку}
writeln
;
{Переводим курсор на следующую строку}
end
;
Отправить комментарий