Содержание

Назад Вперед

5.1.3. Описание величин

declaration-of-scalar-variables :
VARIABLE list-name-scalar [ type ]
declaration-of-variables-on-domains :
VARIABLE list-name-variable-on-domain DEFINED ON name-unconditional-domain [ type ]
type :
{ REAL, INTEGER, DOUBLE }

Скалярные величины (скаляры) и величины на области относятся к арифметическим величинам. Описание ставит в соответствие каждой арифметической величине уникальное в текущем разделе имя величины, а также задает тип величины: REAL , INTEGER или DOUBLE (по умолчанию - тип REAL).

Пример описания скаляров:

VARIABLE Alpha, X, H. VARIABLE IJK, Z INTEGER.

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

Square: (AxisK: (k=1..5) ; AxisL: (l=1..5) ).
VARIABLE First,Last DEFINED ON Square.
VARIABLE SingleK DEFINED ON AxisK DOUBLE.
VARIABLE SingleL DEFINED ON AxisL INTEGER.

Приведенные описания определяют величины First, Last на области Square; это означает, что эти величины могут иметь в индексных выражениях индексы k и l; величины SingleK, SingleL определены, соответственно, на областях AxisK и AxisL, то есть могут иметь в индексных выражениях индексы k и l соответственно. При этом обращения First[k-1,l+1] и First[l+1,k-1] эквивалентны (подробнее см п. 5.1.2).

При обращение к величине на области действует правило задания индексов по умолчанию: индексные выражения, совпадающие с именем индекса, могут быть опущены. Например, обращения First[k,l], First[k], First[l], First к величине First эквивалентны.

В случае, если какой-либо индекс задается константой (константным выражением), необходимо указать, к какому индексному направлению относится данная константа, например First[k=5,l-1]. Если надо одно индексное направление связать зависимостью с другим, то это также необходимо делать явно, например диагональные элементы матрицы First можно определить как First[k,l=k] или First[k=l].


Содержание

Назад Вперед