 
        
        
	
		 
		
Лекция 6
- 
Операторы цикла
Алгоритмы решения многих задач являются циклическими, т.е. для достижения результата определенная последовательность действий должна быть выполнена несколько раз. Например, программа контроля знаний.
Оператор цикла с параметром for...
Служит для организации циклов с заранее известным числом повторений. Циклы, в которых количество повторений заранее определено, называются регулярными.
Существует 2 варианта записи оператора:
Инкрементный вариант:
for i :=<начало> to <конец> do <оператор>; // шаг = 1
Декрементный вариант:
f or
i :=<конец> downto
<начало> do
<оператор>;    // шаг = -1
or
i :=<конец> downto
<начало> do
<оператор>;    // шаг = -1
for - для,
to - до,
downto - вниз до,
do - делать,
i - параметр цикла – переменная счетчик числа
повторений цикла ( целого типа ).
Начало и конец - выражение или константы, определяющие начальное и конечное соответственно значение параметра цикла.
Количество повторений тела цикла можно вычислить по формуле:
N = кон_знач – нач_знач + 1
Выполняется оператор for следующим образом:
- 
Сначала вычисляется и запоминается начальное и конечное значения параметра цикла. 
- 
Далее параметру цикла присваивается начальное значение. 
- 
Затем значение параметра цикла сравнивается с конечным значением. 
- 
Далее, пока параметр цикла  конечного значения (в 1 варианте оператора), выполняется очередная итерация цикла, в противном случае – выход из цикла. 
Правила работы с оператором цикла for:
1. Если в цикле требуется выполнить несколько операторов, то их следует превратить в составной, используя операторные скобки.
for i :=1 to n do
begin
//инструкции цикла
end;
2. Переменная цикла должна быть объявлена в том же блоке, где находится оператор цикла.
3. Нельзя в теле цикла менять значение переменной цикла.
4. При естественном завершении цикла переменная цикла объявляется неопределенной.
Задача1. Вывести на экран буквы от A до Z (инкрементный вариант)
…..
var
m : Char; // Объявление символьного типа
begin
  for m :=
' A '  to
' Z '  do
   for m :=
' A '  to
' Z '  do
Write(m,' ');
Readln
end.
Задача2. Обратный отсчет времени перед запуском (декрементный вариант)
…….
v ar
ar
Seconds : byte;
begin
Writeln ( ' Obratny otchet vremeni ' ); // Обратный отсчет времени
for Seconds := 10 downto 1 do
Writeln ( ' Ostalocy ', Seconds:3, ' Sec ' );
Writeln ( ' Start ' );
Readln
end.
З адача3.
Написать программу, которая выводит
таблицу квадратов первых десяти целых
положительных чисел (инкрементный
вариант).
адача3.
Написать программу, которая выводит
таблицу квадратов первых десяти целых
положительных чисел (инкрементный
вариант).
	 
	program
	Example3; … uses        
	  SysUtils; var 
	     x:integer;    //число 
	     y:integer;    //квадрат
	числа 
	     i:integer;     //счетчик
	циклов begin 
	    writeln( ' Tables   square ' ); 
	    writeln( '------------------' ); 
	    writeln( '    x   |   y    ' ); 
	    writeln( '------------------'); 
	    x:=1; 
	    for i:=1
	to 10 do    
	    begin    
	    y:=x*x; 
	        writeln(x:5,'   |', y:6);    
	    x:=x+1;    
	    end; 
	    writeln( '------------------'); 
	    readln; end.
	 
	 Tables
	square 
	 ------------------ 
	     x   |   y 
	 ------------------ 
	     1   |     1 
	     2   |     4 
	     3   |     9 
	     4   |    16 
	     5   |    25 
	     6   |    36 
	     7   |    49 
	     8   |    64 
	     9   |    81 
	   10   |   100 
	 ------------------
