Хелпикс

Главная

Контакты

Случайная статья





Определение оператора CASE.. Оператор FOR.



13.1. Определение оператора CASE.

 

Синтаксические правила для оператора CASE представлены ниже

 

<оператор CASE> ::= CASE <выражение> OF <список вариантов> END

<список вариантов>::= <список вариантов>, <вариант> | <вариант>

<вариант> ::= <список констант> : <выражение>

<список констант> ::= <список констант>, <константа> | <константа>

 

Для оператора CASE, как и для оператора IF может быть определено значение как объединение функций.

Пусть E будет выражение возвращающее значение порядкового типа, и C1, C2, C3 не равные друг другу константы того же типа и S1, S2 – операторы. Тогда оператор CASE S:

 

CASE E OF

C1, C2: S1;

C3: S2;

END

 

имеет значение:

 

S = {<u, S1(u)>: E(u) = C1(u) OR E(u) = C2(u)} È {<u, S2(u)>: E(u) = C3(u) }

 

Обобщение до большего количества меток и операторов очевидно. Необходимо обратить внимание, что если ни один из вариантов не имеет значение E, функция S не определена.

 

17.2. Оператор FOR.

 

Циклическое управление для оператора FOR заключается в прохождении через набор значений порядкового типа и текущее значение из этого набора доступно для вычисления внутри оператора.

 

Пусть V будет переменная некоторого порядкового типа , а A и Z – выражения того же типа. Оператор FOR

FOR V := A TO Z

DO

S

выполняет оператор S количество раз, заданное значениями A и Z до того как цикл начнется. Предположим, что значением A является p, а значением Z является q перед выполнением цикла. Когда S выполняется первый раз, значением V является p, второй раз – SUCC(p), SUCC(SUCC(p)) и так далее, пока значение V последовательно не достигнет qв последнем выполнении S. Таким образом, количество выполнений будет q – p + 1 при условии если это значение как минимум 1, если нет, то есть если p > q, S не выполняется вообще. Оператор FOR также может быть записан, чтобы выполнить то же количество итераций но в обратном порядке:

FOR V := Z TO A

DO

S

Где значения последовательно принимаемые V

q, PRED(q), PRED(PRED(q)), …, p.

 

V называется контрольной переменной. В конце цикла значение V неопределено.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.