Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
25.04.2015
Размер:
29.7 Кб
Скачать

Тема 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. Какая процедура соответствует конструкции выхода из цикла?

Соседние файлы в папке лекции паскаль