Операции модификации области

Модификация области может состоять в добавлении некоторого числа точек, в удалении точек или изменении диапазона.

Модификация двух первых типов описывается при помощи функций границ LEFT(n) и RIGHT(n). Функция LEFT применяется к левой границе диапазона, функция RIGHT - к правой границе диапазона. Знак "+" перед функцией означает, что к одномерной области добавляются точки, "-" - что из одномерной области удаляются точки. Обе эти функции имеют один параметр n, определяющий число точек, которые необходимо удалить или добавить к области. В качестве фактического параметра функций LEFT и RIGHT может быть задана только целая положительная константа. Обращение к функциям допустимо лишь в контексте с именем одномерной области, задающей модифицируемый диапазон.

Например, описание из строки 20: s:so/ts-LEFT(1). определяет область s, состоящую из точек t=1..n; i=1..n; j=1..n.

Границы диапазона, получаемого в результате применения функций LEFT или RIGHT, должны быть положительными целыми, причем левая граница не должна превосходить правую. Описание s:so/ts+LEFT(1) неверно, так как левая граница получаемого в результате диапазона t=-1..n не является положительной.

Можно изменить составляющую одномерную область и путем явного переопределения диапазонов. Для этого в модификации надо указать имя индекса направления и его новое значение. Например строка 20 : s1:s1o/t=1..n.

Кроме определения прямоугольных областей, в Норме имеется возможность задания диагональных областей путем наложения условий на уже определенную область (прямоугольную или диагональную).

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

ij:((i=1..10);(j=1..10)). Diagonal:ij/i=j

задают область Diagonal, состоящую из точек (i=1,j=1), (i=2,j=2), ..., (i=10,j=10).