Цикл - это специальная конструкция языка, позволяющая запрограммировать многократное выполнение определённого блока команд. Сам блок команд называется телом цикла.
В языке Паскаль имеется три вида операторов цикла: Оператор цикла с параметром; Оператор цикла с предусловием; Оператор цикла с постусловием.
1. Повторяющиеся вычисления записываются всего лишь один раз. 2. Вход в цикл возможен только через его начало. 3. Переменные оператора цикла должны быть определены до входа в циклическую часть. 4. Необходимо предусмотреть выход из цикла: или по естественному его окончанию, или по оператору перехода. Для всех операторов цикла характерна следующая особенность:
FOR i:=a TO b DO или FOR i:=a DOWNTO b DO «Для параметра i, меняющегося от a до b выполнить оператор» i – параметр цикла, a – начальное значения параметра цикла b – конечное значения параметра цикла Для составного оператора: Begin Операторы End;
1: Var i: Char; Begin For i:=a to d do write(i); End. 2: Var i: Integer; Begin For i:=10 downto 1 do begin writeln(i); writeln; end; End.
Program zadacha; var n,s,i:integer; Begin cls; write(введите натуральное число n=); readln(n); s:=0; for i:=1 to n do s:=s+i; writeln(сумма=,s) End. Задача: Вычислить S= … +n
1. Используется только тогда, когда заранее известно, сколько раз должна повторится циклическая часть программы. 2. Параметр цикла не может быть типа Real. 3. В теле цикла нельзя изменять переменную «параметр цикла» (i). 4. При выходе из цикла значение переменной «параметр цикла» (i) является неопределенным. 5. Если необходимо включить в тело цикла несколько операторов, необходимо применить составной оператор. Особенности цикла с параметром:
Сколько раз выполняется цикл? a := 1; for i:=1 to 3 do a := a+1; a := 1; for i:=1 to 3 do a := a+1; 3 раза a = 4 3 раза a = 4 a := 1; for i:=3 to 1 do a := a+1; a := 1; for i:=3 to 1 do a := a+1; 0 раз a = 1 0 раз a = 1 a := 1; for i:=1 downto 3 do a := a+1; a := 1; for i:=1 downto 3 do a := a+1; 0 раз a = 1 0 раз a = 1 a := 1; for i:=3 downto 1 do a := a+1; a := 1; for i:=3 downto 1 do a := a+1; 3 раза a = 4 3 раза a = 4
While Do "Пока истинно условие, выполнять оператор". Оператор выполняется до тех пор пока логическое выражение (условие) имеет значение истина, прекращает выполняться, если логическое выражение принимает значение ложь.
Var i: Integer; begin i:=10; While i>5 do begin writeln (i); i:= i - 1; end; End.
Процесс повторяется, пока логическое выражение - «истина». Оператор (тело цикла) может не выполнится ни одного раза. Если необходимо включить в тело цикла несколько операторов, необходимо применить составной оператор. Чтобы цикл завершился, необходимо, чтобы в теле цикла изменялись значения переменных, входящих в условие. Особенности оператора While...Do... :
Сколько раз выполняется цикл? a := 4; b := 6; while a < b do a := a + 1; a := 4; b := 6; while a < b do a := a + 1; 2 раза a = 6 2 раза a = 6 a := 4; b := 6; while a < b do a := a + b; a := 4; b := 6; while a < b do a := a + b; 1 раз a = 10 1 раз a = 10 a := 4; b := 6; while a > b do a := a + 1; a := 4; b := 6; while a > b do a := a + 1; 0 раз a = 4 0 раз a = 4 a := 4; b := 6; while a < b do a := a - 1; a := 4; b := 6; while a < b do a := a - 1; зацикливание
Repeat ; ;... Until ; "Выполнять оператор 1, оператор 2,… до выполнения условия" Оператор выполняется до тех пор пока логическое выражение (условие) имеет значение ложь, прекращает выполняться, если логическое выражение принимает значение истина.
Var i: Integer; begin i:=1; Repeat writeln (i); i:= i + 1; Until (i = 10); End.
Процесс повторяется, пока логическое выражение - «ложь». Оператор (тело цикла) выполняется хотя бы один раз. Тело цикла может содержать несколько операторов, при этом не нужны операторные скобки Begin..End. Чтобы цикл завершился, необходимо, чтобы в теле цикла изменялись значения переменных, входящих в условие. Особенности оператора Repeat…Until... :
Сколько раз выполняется цикл? a := 4; b := 6; repeat a := a + 1 until a > b; a := 4; b := 6; repeat a := a + 1 until a > b; 3 раза a = 7 3 раза a = 7 a := 4; b := 6; repeat a := a + b until a > b; a := 4; b := 6; repeat a := a + b until a > b; 1 раз a = 10 1 раз a = 10 a := 4; b := 6; repeat a := a + b until a < b; a := 4; b := 6; repeat a := a + b until a < b; зацикливание a := 4; b := 6; repeat b := a - b until a < b; a := 4; b := 6; repeat b := a - b until a < b; 2 раза b = 6 2 раза b = 6 a := 4; b := 6; repeat a := a + 2 until a < b; a := 4; b := 6; repeat a := a + 2 until a < b; зацикливание
Циклы могут быть вложены один в другой. При использовании вложенных циклов необходимо составлять программу таким образом, чтобы внутренний цикл полностью укладывался в циклическую часть внешнего цикла.
Написать программу вычисления n! = 1*2*3* … *n. Написать программу возведения действительного числа a в натуральную степень n.