Операторы повторений В языке Турбо Паскаль имеются три оператора, позволяющих запрограммировать повторяющиеся фрагменты программ (циклы). Это операторы while, repeat, for.
Оператор цикла while-do (цикл с предусловием) Общий вид записи: While <условие> do
begin
<оператор 1>;
...
< оператор n>
End; Запись означает «пока выполняется <условие>, делать».
Инструкция while-do означает «пока выполняется <условие>, делать» и
выполняется следующим образом: сначала проверяется условие. Если оно истинно, выполняются < оператор 1>...< оператор n> и так далее. Если же условие ложно, выполнение считается законченным, и программа переходит к обработке следующих команд. Таким образом, если условие с самого начала оказалось ложным, < оператор 1>...< оператор n> не будут выполнены ни разу. В цикле while-do <условие> - это условие выполнения цикла: пока оно истинно, программа из цикла не выйдет. В том случае, если внутри цикла стоит только один оператор, пара begin - end может отсутствовать, если операторов больше одного, то пара begin - end обязательна, так как иначе будет выполняться только один оператор, стоящий сразу после слова do. Пример: Надо вычислить сумму S=1+1/2+1/3+...+1/50 VAR S: REAL; N:INTEGER;
BEGIN
S:=0; N:=1;
WHILE N<=50 DO
BEGIN
S:=S+1/N;
N:=N+1;
END;
WRITELN(' S=',S);
END.
Оператор цикла repeat-until (цикл с постусловием) Общий вид записи: Repeat
< оператор 1>;
...
< оператор n>
until <условие>; Инструкция repeat-until означает «повторять до тех пор, пока не будет выполнено <условие>» и выполняется следующим образом : сначала выполняются < оператор 1>...< оператор n>. Затем проверяется условие. Если оно ложно, происходит возврат с выполнению <оператор 1>...<оператор n>. Если условие истинно, цикл считается выполненным и программа переходит к обработке следующих команд. Таким образом, в цикле repeat-until <условие> - это условие завершения цикла: цикл повторяется, пока оно ложно. Пример:
VAR S: REAL; N:INTEGER;
BEGIN
S:=0; N:=1;
REPEAT
S:=S+1/N;
N:=N+1;
UNTIL N>50;
WRITELN(' S=',S);
END.
Оператор цикла for (цикл с параметром) Общий вид: For I:=N1 to N2 do <простой или составной оператор>; I - переменная цикла (параметр цикла),
N1- начальное значение цикла,
N2- конечное значение цикла,
I,N1,N2 должны быть одного и того же типа, но не real.
I принимает последовательные значения данного типа от N1 до N2. Если N1 и N2 - целые числа, а I - целая переменная, то шаг всегда равен единице.
Инструкция for означает «для I, изменяющегося от N1 до N2 делать» и выполняется следующим образом: вначале вычисляется значение N1 и оно присваивается I. После этого циклически повторяется:
- проверка условия I <=N2. Если условие не выполнено, оператор for завершает свою работу;
- если условие I <=N2 выполнено, то исполняется конструкция «<простой или составной оператор>»;
- наращивание переменной I на единицу. Пример:
VAR S: REAL; N:INTEGER;
BEGIN
S:=0;
FOR I:=1 TO 50 DO
S:=S+1/I;
WRITELN(' S=',S);
END. Цикл по убывающим значениям параметра I от N2 до N1 имеет вид: For I:=N2 downto N1 do <простой или составной оператор>; Пример 1:
For I:=20 downto 1 do A:=A+1;
I изменяется от 20 до 1 с шагом -1.
|