НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

9.7. Операторы цикла

В языке паскаль имеется три вида операторов цикла:


9.7.1. Оператор цикла WHILE.

Общий вид:


здесь А - булевское (логическое) выражение, ST - оператор (простой либо составной).

Выражение А вычисляется перед каждым выполнением оператора ST. Если А - TRUE, то ST выполняется и управление передается на вычисление А; если А - FALSE, то ST не выполняется и происходит выход из цикла. Если первоначальное значение А - FALSE, то ST не будет выполнен ни разу.

Пример.


В этом примере вычисляется выражение X <> 0. Если оно - "истина", (Х≠0), будут выполняться оператор С:=С+1/Х; Х: = Х-1 и управление опять будет передано на вычисление выражения Х<>0.

Как только условие X≠0 не выполняется, управление сразу передастся оператору, следующему за END; т. е. цикл повторяется пока Х≠О.

Задача 1.

Вычислить сумму



Результат: S = 4.499...

9.7.2. Оператор цикла REPEAT

Общий вид:


здесь STS - группа выполняемых операторов, A - булевское выражение.

Работает оператор так: выполняются операторы STS, вычисляется выражение А; если оно "ложь" (FALSE), то вновь выполняются операторы STS, если А - "истина" (TRUE) - цикл заканчивается. Если А - "истина" с самого начала, то операторы STS выполняются един раз. Если А никогда не принимает значение "истина", то группа операторов STS выполняется бесконечное число раз, происходит "зацикливание".

Пример. Рассмотрим такой цикл:


Сначала выполнятся операторы С:=С+1/Х; Х:=Х-1, затем проверяется условие X = 0. Если Х≠О (т. е. "ложь"), то повторяется выполнение указанных операторов; если X = 0 ("истина"), то управление передается на оператор, следующий за строкой UNTIL X = 0;

Задача 2. Решить задачу 1 с использованием оператора REPEAT


Результат S=4.499....

9.7.3. Оператор цикла FOR.

Общий вид:


здесь I - переменная цикла, N1 - начальное значение переменной цикла, N2 - конечное значение, ST - оператор (простой либо составной).

I ,N1 и N2 должны быть одного и того же скалярного типа, но не REAL. I принимает последовательные значения данного типа от N1 до N2. Если N1 и N2 - целые числа, а I - целая переменная то шаг всегда равен единице.

Пример.


Для I = 1, 2, 3, ..., 20 будет выполняться оператор A:=A-f-l; Если N1 и N2 символьного типа - например, соответственно, имеют значения А и Z, то переменная I принимает последовательные значения в порядке алфавита: А, В, С, ..., Z.

Если N1 и N2 типа COLOR (тип COLOR = (RED,YELLOW, GREEN,BLUE)), например RED n GREEN соответственно, то переменная I принимает значения RED,YELLOW,GREEN.

Цикл по убывающим значениям параметра I от N2 до N1 имеет

вид:


В этом случае параметр I принимает последовательные убывающие значения данного типа от N2 до N1.

Пример.


I изменяется от 20 до 1 с шагом -1.

Задача 3. Вычислить сумму



Оператор S: = S+1/I выполняется 50 раз соответственно для 1 = 1; 2; 3; . . . 50.

Результат S = 4.499 . . .

Замечания.

1. Внутри цикла нельзя изменять ни начальное, ни конечное значения переменной цикла, а также само значение переменной цикла.

2. Если в цикле по возрастающим значениям переменной начальное значение больше конечного, то цикл не выполняется пи разу.

Аналогично - для цикла с "DOWNTO", если начальное значение меньше конечного.

3. После завершения цикла значение переменной цикла "портится" (становится неопределенным).

Пример.


В этом фрагменте К будет принимать последовательные значения

1, 2, 3, . . ., 50. После завершения всего цикла выполнится оператор L:=I. Будет ошибкой предполагать, что L содержит число 50: пе-, ременная I "испортилась" после окончания цикла. Если необходимо тем не менее запомнить последнее значение переменной 1, то следует выполнить оператор L: = K,

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь