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

5.1.3. Сем антика

Описания типа служат для указания того, что некоторые идентификаторы представляют простые переменные данного типа. Переменные, которым описанием дан тип real, могут принимать только положительные и отрицательные значения, включая нуль. Переменные, которым описанием дан тип Integer, могут принимать только положительные и отрицательные целые значения, включая нуль. Переменные, которым описанием дан тип Boolean, могут принимать только значения true и false.

В арифметических выражениях любая позиция, которая может быть занята переменной типа real, может быть занята и переменной типа integer.

О семантике описателя own см. выше, в четвертом абзаце гл. 5.

5.2. Описания массивов

5.2.1. Синтаксис

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

(верхняя граница): : = (арифметическое выражение)

(граничная пара): : = (нижняяграница):(верхняя граница)

(список граничных пар): : = (граничная пара)[(список граничных пар), (граничная пара)

(сегмент массива): : = (идентификатор массива) [(список граничных пар)] [ (идентификатор массива), (сегмент массива)

(список массивов): : = (сегмент массива)[(список массивов), (сегмент массива)

(описание массива) :: = array (список массивов) [ (локальный или собственный тип) array (список массивов)

5.2.2. Примеры " array а, b, с [7 :п, 2: т], s [-2:10]

own integer array Л [if с < О then 2 else 1:20] real array q [-7: -1]



5.2.3. Семантика

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

5.2.3.1. Границы индексов. Границы индексов любого массива задаются в первых индексных скобках, следующих за идентификатором данного массива, в виде списка граничных пар. Каждый член этого списка задает нижнюю и верхнюю границы индекса в виде двух арифметических выражений, разделенных ограничителем : . Список граничных пар задает границы всех индексов в порядке их перечисления слева направо. 5.2.3.2. Размерности. Размерности определяются как число членов в списках граничных пар.

5.2.3.3. Типы. Все массивы, данные в одном описании, имеют один и тот же предписанный им тип. Если описатель типа отсутствует, то подразумевается тип real.

5.2.4. Выражения для нижних и верхних границ

5.2.4.1. Значения этих выражений вычисляются так же, как значения индексных выражений (см. разд. 3.1.4.2).

5.2.4.2. Эти выражения могут зависеть только от переменных и процедур, не локальных в том блоке, для которого , имеет силу данное описание массива. Из этого следует, что в самом внешнем блоке программы могут быть описаны массивы только с постоянными границами.

5.2.4.3. Массив определен только в том случае, когда значения всех верхних границ индексов не меньше, чем значения соответствующих нижних границ.

5.2.4.4. Значения выражений для границ вычисляются один раз при каждом входе в блок.

5.2.5. Идентичность переменных с индексами

Идентичность переменных с* индексами не связана



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

5.3. Описания переключателей

5.3.1. Синтаксис

(переключательный список):: =(именующее выражение) [(переключательный список), (именующее выражение)

(описание переключателя): : = switch (идентификатор переключателя): = (переключательный список)

5.3.2. Примеры

switch 5: = 51, 52, Q\m\, if v>-b then 53 else 54 switch Q:=p\, w

5.3.3. Семантика

В описании переключателя задается совокупность значений соответствующих указателей переключателя. Эти значения даны одно за другим, как значения именующих выражений, перечисленных в переключательном списке. С каждым из этих именующих выражений связано положительное целое число 1,2,..., получаемое при пересчете членов списка слева направо. Значением указателя переключателя, соответствующим данному значению индексного выражения (см. разд. 3.5. Именующие выражения), является значение именующего выражения в переключательном списке, имеющего данное значение индексного выражения своим порядковым номером.

5.3.4. Вычисление значений выражений в переключательном списке

Значение выражения, входящего в переключательный список, вычисляется каждый раз, когда происходит об-





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

0.0039