Основы программирования в среде Турбо Паскаль 7.0. Величины в Турбо Паскале. Линейные вычислительные процессы, страница 11

Замечания.

a.  Выражение e в алгоритмах программ называют условием завершения цикла, а операторы s1, s2, , sk – телом цикла.

b.  Оператор repeat так же, как и while, организует выполнение тела цикла заранее неизвестное количество раз.

c.  Поскольку выражение e вычисляется после выполнения

19

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

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

4. Оператор цикла for

Назначение: организация циклического вычислительного процесса с заранее известным числом повторений тела цикла. Синтаксические формы оператора: for v : e1 to e2 do s

for v : e1 downto e2 do s

где for, to, downto, do – зарезервированные слова; v – имя переменной порядкового типа; e1, e2 – выражения того же самого порядкового типа, что и переменная v; s – одиночный оператор.

Изображение оператора в схеме алгоритма:

                  старый стандарт                                       новый стандарт

Действие оператора for…to (с нарастанием переменной v):

1)  вычисляются выражения e1 и e2;

2)  вычисляется отношение e1 e2;

3)  если получено логическое значение False, то действие оператора for заканчивается и управление передаётся оператору, следующему за оператором for;

4)  если получено логическое значение True, то выполняются последующие пункты;

5)  переменная v получает значение выражения e1;

6)  выполняется оператор s;

7)  модифицируется (изменяется) значение переменной v – она получает следующее  по порядку значение; эта операция реализуется процедурой Inc(v); 8) вычисляется отношение v e2;

9)  если получено логическое значение False, то действие

20

оператора for заканчивается и управление передаётся оператору, следующему за оператором for;

10)  если получено логическое значение True, то осуществляется переход на пункт 6 (к выполнению оператора s).

Действие оператора for…downto (с убыванием переменной v):

1)  вычисляются выражения e1 и e2;

2)  вычисляется отношение e1 e2;

3)  если получено логическое значение False, то действие оператора for заканчивается и управление передаётся оператору, следующему за оператором for;

4)  если получено логическое значение True, то выполняются последующие пункты;

5)  переменная v получает значение выражения e1;

6)  выполняется оператор s;

7)  модифицируется (изменяется) значение переменной v – она получает предыдущее по порядку значение; эта операция реализуется процедурой Dec(v); 8) вычисляется отношение v e2;

9)  если получено логическое значение False, то действие оператора for заканчивается и управление передаётся оператору, следующему за оператором for;

10)  если получено логическое значение True, то осуществляется переход на пункт 6 (к выполнению оператора s).

Замечания.

a.  Переменную v в алгоритмах программ называют управляющей переменной, выражения e1 и e2 – начальным и конечным значениями управляющей переменной, а оператор s – телом цикла.

b.  Оператор for в отличие от while и repeat, организует выполнение тела цикла c заранее известным числом повторений тела цикла – оно равно количеству значений от e1 до e2, и может быть вычислено так:

n = Ord(e2)–Ord(e1) + 1 для варианта forto; n = Ord(e1)–Ord(e2) + 1 для варианта fordownto.

c.  Поскольку отношение, определяющее выполняться или не выполняться телу цикла, вычисляется заранее, то организуемый цикл является частным случаем цикла с предусловием – тело цикла не выполнится ни разу, если: e1 > e2.в варианте forto; e1 < e2.в варианте fordownto.

d.  Упрощённо работу оператора for можно излагать следующим образом: переменная v поочерёдно принимает значения от e1 до e2, и при каждом значении v выполняется оператор s.