Главная Промышленная автоматика.

4.3.3. Семантика

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

4.3.4. Ограничение

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

4.3.5. Переход при неопределенном указателе переключателя

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

4.4. Пустые операторы

4.4.1. Синтаксис

(пустой оператор): : = (пусто)

4.4.2. Примеры

begin ...; John: end

4.4.3. Семантика

Пустой оператор не выполняет никакого действия. Он может служить для помещения метки.

4.5 Условные операторы 4.5.1. Синтаксис (условие): : = if (логическое выражение) then (безусловный оператор): : = (основной оператор)(составной оператор)!(блок)



выражение)(арифметическое выражение) while

(логическое выражение) (список цикла) :: = (элемент списка цикла) (список

цикла), (элемент списка цикла) (заголовок цикла) : : = for (переменная) : = (список

цикла) do

(оператор цикла):: = (заголовок цикла) (оператор) (метка):(оператор цикла)

4.6.2. Примеры

for: = l stepsuntil«doI]: = 5[J for/fe: = l, 1/1 X 2while УК do fory:=/--G, L, 1 stepl until TV, C+Ddo

A[k, j]: = B[k, j\

4.6.3. Семантика

Заголовок цикла заставляет стоящий за ним оператор S повторно выполняться нуль или более раз. Кроме того, он осуществляет последовательные присваивания значений переменной, управляемой данным заголовком Этот процесс может быть пояснен следующей схемой:

Начало; проверка; оператор S; продвижение; преемник

список цикла исчерпан . .

В этой схеме слово „начало" означает: произвести первое присваивание в заголовке цикла. «Продвижение" означает: произвести очередное присваивание в заголовке цикла. „Проверка" определяет, было ли сделано последнее присваивание. Если оно сделано, то выполнение продолжается с преемника оператора цикла. В противном случае выполняется оператор, стоящий за заголовком цикла.

.) В дальнейшем это выражение будет заменено принятым в нашей терминологии выражением «параметр цикла», - Ярыл, ред.



4.6.4. Элементы списка цикла

Список цикла дает правило для получения значений, которые последовательно присваиваются параметру цикла. Эта последовательность значений получается из элементов списка цикла путем их последовательног© перебора в порядке их написания. Последовательность значений, порождаемая каждой из трех разновидностей элементов списка цикла, и соответствующее выполнение оператора S определяются следующими правилами:

4.6.4.1. Арифметическое выражение. Этот элемент задает только одно значение, а именно значение данного арифметического выражения, вычисленное непосредственно перед соответствующим выполнением оператора S.

4.6.4.2. Элемент типа арифметической прогрессии. Элемент, имеющий вид А step В until С, где А, В и С - арифметические выражения, задает порядок вьшолнения, который наиболее четко можно описать с помощью дополнительных операторов АЛГОЛа следующим образом:

К: = Л;

L\: if (V-C) X sign (В) > О then go to Элемент исчерпан;

Оператор S; l/: = V + 5; go to LI;

где V - параметр цикла и «Элемент исчерпан» указывает на переход либо к вычислениям, соответствующим следующему элементу списка цикла, либо, если данный элемент типа арифметической прогрессии стоит последним в списке, к следующему оператору программы.

4.6.4.3. Элемент типа пересчета. Порядок выполнения, определяемый элементом списка цикла вида Е -while F, где Е - арифметическое, а F - логическое выражение, наиболее четко описывается с помощью дополнительных операторов АЛГОЛа следующим об-





0 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22

0.0019