28442

Операторы повторений. Счетный оператор цикла FOR. Оператор цикла WHILE. Оператор цикла REPEAT… UNTIL. Программирование циклических структур алгоритмов

Лекция

Информатика, кибернетика и программирование

Операторы повторений. Счетный оператор цикла FOR. Оператор цикла WHILE. Оператор цикла REPEAT UNTIL.

Русский

2013-08-20

29 KB

9 чел.

Тема 2. Операторы повторений. Счетный оператор цикла  FOR. Оператор цикла WHILE. Оператор цикла REPEATUNTIL. Программирование циклических структур алгоритмов

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

Оператор FOR имеет такую структуру:

FOR< пар_ цик> := <нач_знач> TO <кон_знач> DO <оператор>;

Здесь

< пар_ цик>- параметр цикла- переменная типа INTEGER (точнее, любого порядкового типа);

< нач_ знач>- начальное значение- выражение такого же типа

<кон_ знач>- конечное значение – выражение того же типа.

<оператор>- произвольный оператор Турбо Паскаля.

При выполнении оператора FOR вначале вычисляется выражение <нач_знач> и осуществляется присваивание <пар_цик> : = <нач_знач>.

После этого циклически повторяется:

- проверка условия <пар_цик> <= <кон_ знач>;                                       если условие не выполнено, оператор FOR завершает свою работу;

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

- наращивание переменной <пар_цик> на единицу ( шаг наращивания параметра цикла строго постоянен и равен( +1). Существует другая форма оператор FOR:

FOR <пар_цик>: = <нач_ знач> DOWNTO <кон_ знач> DO <оператор>;

Замена зарезервированного слова TO на DOWNTO означает, что шаг наращивания  параметра цикла равен (-1 ), а управляющее условие приобретает вид <пар_цик> >= <кон_ знач>.

S:=0;

FOR I:=1 to N DO

S: =S + ( sqr ( x) + cos (x))/ exp ( i * ln ( 6));

 

Оператор цикла WHILE c предпроверкой условия:

           WHILE <условия> DO

                  <оператор>;

<условие >- выражение логического типа.

<оператор>- любой исполнительный оператор.

Если выражение <условие>имеет значение TRUE , то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие>имеет значение FALSE , оператор WHILE прекращает свою работу.

Оператор цикла REPEAT… UNTIL с постпроверкой условия:

                         REPEAT <тело_цикла> UNTIL <условие>;

Здесь REPEAT, UNTIL – зарезервированное слова (повторять до тех пор, пока не будет выполнено условие);

<тело_цикла>- последовать операторов Турбо Паскаля

<условие>- выражение логического типа операторы <тело_цикла> выполняется хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT…UNTIL завершает свою работу.

S:=0; К:=1;

REPEAT

 AR:=( sqr(x)+1) / ( sqr( sqr(x))+ exp ( 5*ln( 2* x+1));

 S:=S+AK;

 K:= K+1;

UNTIL  ABS(AK)<E;

Для гибкого управления циклическими операторами FOR,WHILE, REPEAT  в состав Турбо Паскаля включены две процедуры:

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

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

1ocн[37-43], [97-99]. 2ocн[123-132]. 3ocн[42-59] 4ocн[7-11]

2доп[95-106]

Контрольные вопросы

  1.  В каких случаях используются операторы   цикла For, While, Repeat?
  2.  Сколько раз запускается внутренний цикл в двух вложенных циклах?
  3.  В чем заключается различие между операторами While и Repeat?
  4.  Какие ограничения накладываются на использование оператора For?
  5.  Какое значение  может принимать  шаг цикла оператора For в Турбо Паскале?
  6.  Какая процедура соответствует конструкции выхода из цикла?