пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Циклические операторы

1. Оператор цикла с параметром[1]

В языке ОР имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ (циклы).

Циклы - повторяющееся выполнение одних и тех же операторов. Операторы могут быть простыми или составными.

Счетный оператор цикла for имеет следующую структуру:

For <параметр цикла> := <начальное значение> to <конечное значение> do <оператор>;

При выполнении оператора for вначале вычисляется <начальное значение> и осуществляется присваивание. После этого циклически повторяется:

- проверка условия: <начальное значение> <= <конечное значение>;

- если условие не выполнено, оператор for завершает свою работу;

- выполнение <оператора>;

- наращивание переменной <параметр цикла> на единицу.

Например, вычисление суммы чисел от 1 до n.

Var I, n, sum: integer;

Begin

Sum := 0

For I := 1 to n do

Sum := sum + I;

End;

Следует отметить, что условие, управляющее работой for, проверяется перед выполнением <оператора>, если условие не выполняется в самом начале работы, то выполняемый оператор не будет выполнен ни разу.

Шаг наращивания цикла строго постоянен и равен единице. Существует и другая форма оператора:

For <наращивание цикла> := <начальное значение> downto <конечное значение> do <оператор>;

Замена слова to на downto означает, что шаг наращивания параметра цикла равен (-1).

Например: Вычислить: (cos(1+cos(2+… cos(39+cos 40)…))

Y:=cos(40);

FOR I:= 39 DOWNTO 1 DO

Y:= (cos(I+y));

 

Два других оператора повторений лишь проверяют условие выполнения или повторения цикла, но не связаны с изменением счетчика цикла.

 

2. Оператор цикла с предусловием[2]

Оператор цикла While с проверкой условия в общем виде выглядит следующим образом:

While <условие> do <оператор>;

(пока выполняется условие, делать).

Если логическое выражение <условие> имеет значение true, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение false, то оператор While продолжает работу.

Пример: Вычислить 10!

Var fact, n: integer;

Begin

fact:=1; n:=1;

While n<=10 Do

Begin[3]

fact:=fact*n

n:=n+1;

End;

Writeln (fact);

End.

 

3. Оператор цикла с постусловием[4]

Оператор RepeatUntil с постпроверкой условия.

Repeat <тело цикла> Until <условие>;

(повторять до тех пор, пока не будет выполнено условие).

<Тело цикла> выполняется хотя бы один раз, после чего вычисляется выражение <условие>, если его значение false, операторы <тело цикла> повторяются, в противном случае Repeat заканчивает свою работу.

Пример: вычислить сумму 1+1/2+1/3+...+1/n

Read (n);

H:=0; i:=n;

Repeat

H:=H+1/n;

i:=i-1

Until i=0;

Write(H);

 

Для гибкого управления циклическими операторами в состав ОР введены две процедуры без параметров:

BREAK – реализует немедленный выход из цикла действия и заключается в передаче управления оператору, следующему за концом цикла;

CONTINUE – обеспечивает досрочное очередного прохода цикла; эквивалент передачи управления в самый конец циклического оператора.

 

[1] Еще его называют счетным оператором цикла

[2] Или оператор цикла с проверкой условия

[3] Внутри оператора цикла, как и в условии, если применяется группа операторов, то она обязательно заключается в операторные скобки

[4] Или оператор цикла с постпроверкой условия


27.05.2014; 21:42
хиты: 123
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь