Вложенные циклы

Цикл с параметром

Оператор цикла с параметром используется в том случае, когда заранее известно, сколько раз должен повториться цикл. Оператор цикла с параметром имеет следующую форму записи:

 

For i:=m1 To(DownTo) m2 Do Оператор;

 

Здесь For (для), То(до), Do(делать) – служебные слова;

I – параметр цикла, (счётчик цикла);

m1, m2 – соответственно начальное и конечное значение параметра цикла;

Оператор – любой простой или составной оператор.

Циклическая часть программы выполняется для каждого значения i от его начального m1 до конечного m2 включительно.

В качестве параметра цикла, из уже изученных типов могут использоваться только переменные типа Integer или Char. В качестве m1, m2 могут использоваться любые выражения того же типа, что и счётчик цикла.

Чаще всего параметр цикла – переменная целого типа, а шаг ее изменения равен +1 или –1.

Если значение параметра возрастает (шаг=+1), то используется служебное слово То, если убывает (шаг=-1), используется слово DownTo.

Например оператор

For i:= 1 To 10 Do Write(i);

Означает, что для всех значений i от 1 до 10 выводятся на экран значение i.

Замечание: Параметр цикла не должен переопределяться внутри цикла.

 

В качестве примера, рассмотрим предыдущую задачу и постараемся реализовать ее с помощью оператора цикла с параметром.

Пример 1.

Program cikl4;

Var x,y,i:Integer;

Begin

X:=2;

For i:=1 To 5 Do

Begin

Y:=x*x;

Writeln(x:3,y);

X:=x+2;

End;

End.

Или возможен также другой вариант решения задачи:

Program cikl4;

Var x,y,i:Integer;

Begin

For i:=1 To 5 Do

Begin

X:=2*i;

Y:=Sqr(x);

Writeln(x:3,y:5);

End;

End.

 

Пример2

Вывести на экран все буквы латинского алфавита.

Так как все буквы латинского алфавита упорядочены, можно поступить следующим образом:

 

Program Cikl5;

Var c:Char;

Begin

For c:=’a’ To ‘z’ Do Write(c);

Writeln;

End.

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

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

 

Контрольные вопросы и задания для самостоятельной работы.

1. Каково назначение операторов повтора (цикла)?

2. Какие требования предъявляются к выражениям, управляющим повторениями?

3. В чем отличия операторов повтора While и Repeat?

4. В каких случаях предпочтительнее использовать для организации циклов оператор повтора For? Что записывается в заголовке этого оператора?

5. Каким образом в операторе цикла For описывается направление изменения значения параметра цикла?

6. Какие ограничения налагаются на использование управляющей переменной в цикле For?

7. Что такое вложенные циклы? Какие дополнительные условия необходимо соблюдать при организации вложенных циклов?

8. Составьте программу для вычисления числа дней в месяце, если даны: номер месяца N – целое число от 1 до 12, целое число А, равное 1 для високосного года и 0 в противном случае.

9. Составьте программу, которая вычисляет сумму чисел от 1 до N. Значение N (N – должно быть меньше 100) вводится с клавиатуры.

10. С помощью While напишите программу вывода всех честных чисел в диапазоне от 2 до 100 включительно.

11. Составьте программу вычисления степени числа А с натуральным показателем N. (Записать варианты программы с разными видами циклов while, repeat, for).

12. Дана последовательность: 1; 1+1/2; 1+1/2+1/3; …; 1+1/2+…+1/n. Составьте программу, вычисляющую первый член последовательности, превосходящий заданное число a.

13. Каждая бактерия делится на две в течение одной минуты. В начальный момент имеется одна бактерия. Составьте программу, которая рассчитывает количество бактерий на заданное вами целое значение момента времени (15 мин, 7 мин и т.п.).

14. В 1202 г. итальянский математик Леонард Пизанский (Фибоначчи) предложил такую задачу: пара кроликов каждый месяц дает приплод – двух кроликов (самца и самку), от которых через два месяца уже получается новый приплод. Сколько кроликов будет через год, если в начале года имелась одна пара? Согласно условию задачи числа, соответствующие количеству кроликов, которые появляются через каждый месяц, составляют последовательность 1, 1, 2, 3, 5, 8, 13, 21, 34, …

15. Составьте программу, позволяющую найти все числа Фибоначчи, меньшие заданного числа N.

16. Составьте программу, которая выводит полную запись десятичного числа 42*4*, в которой пропущены две цифры, если известно, что данное число кратно 72.

17. В старояпонском календаре был принят 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984 г. – год зеленой крысы – был началом очередного цикла). Напишите программу, которая вводит номер некоторого года нашей эры и печатает его название по старояпонскому календарю.

18. Для заданного числа n составьте программу вычисления суммы

19. Составьте программу вычисления суммы всех двузначных чисел.

20. Составьте программу вычисления факториала натурального числа n. Факториалом натурального числа n называется произведение всех чисел от1 до n, включая n.

21. Составьте программу, которая печатает все натуральные числа меньше 100, для которых f(x)=n, если значение функции f(n) равно количеству букв в записи числа n русскими буквами, например: f(1)=4, так как в слове «один» четыре буквы; f(45)=9, так как в записи числа «сорок пять» девять букв.