203
Square1∩Square2=Ø,
ал Square1USquare2=Square. Бірінші
Square1
ішкі облысы, x[k,1]-y[k,1]
қабылдайтын Square облысының нүктелерінен тұрады, ал Square2 ішкі
облысы, ЛОЖЬ мәнін қабылдайтын нүктелерден тұрады.
НОРМА тілінде шамалардың екі класы анықталған:
скаляр шамалар
және
облыстағы шамалар. Сипаттама ағымды бӛлімде
әрбір шамаға сәйкес
бірегей ат қояды, сонымен қатар шаманың типін береді: REAL, INTEGER
немесе DOUBLE. Скаляр шаманы сипаттау, мысалы, келесі түрде болуы
мүмкін:
VARIABLE k1,k2 INTEGER
VARIABLE pi DOUBLE
Әрбір
облыстағы шамалар сипаттамада кӛрсетілген облыспен
байланыстырылады.
Бұл облыс, берілген шамаға қатынас кезінде индексті
ӛрнектерде пайдаланылуы мүмкін индекс аттарын анықтайды. Индексті
ӛрнектерді кӛрсету реті маңызды емес. Облысты сипаттау кезінде
енгізілетіндіктен, индекстер үшін арнайы сипаттау талап етілмейді.
Тағы да Square облысының алдыңғы берілген сипаттамасын
пайдаланайық және соның негізінде облыстағы шамаларды енгізейік:
Square: (DirK:(k=1..15); Dirl: (l=1..9))
VARIABLE Xsum, Y DEFINED ON Square
OneDimK DEFINED ON DirK, OneDimL DEFINED ON DirL
Келтірілген сипаттаулар
Square
облысында
Xsum және Y
шамаларын анықтайды. Индексті ӛрнектерде бұл екі шама да k және l
индекстеріне ие болуы мүмкін. OneDimK және OneDimL шамалары DirK
және DirL облыстарында анықталған, сондықтан олар индексті ӛрнектерде
сәйкесінше k және l индекстеріне ие болулары мүмкін.
Облысты сипаттау кезінде индексті кеңістік бағыттарының реті
бекітілмегендіктен,
Y[k-1,l+1]
және
Y[l+1,k-1]
қатынастары
эквивалентті. Егер бір индексті бағытты басқасымен байданыстыру қажет
болса, онда оны айқын түрде кӛрсету керек. Мысалы,
Y матрицасының
диагоналдық элементтерін Y[k,l=k] немес жай Y[l=k] деп анықтауға
болады.
НОРМА тілінде операторлардың үш түрі ғана анықталған: скалярлық
оператор, ASSUME операторы және бӛлімді шақыру.
Скалярлық оператор скалярлардың арифметикалық мәндерін есептеуге
арналған. Жалпы алғанда бұл оператор дәстүрлі бағдарламалау тілдеріндегі
қабылдау операторының аналогы десе болады,
сол жағында скаляр аты
кӛрсетіледі, ал оң жағында – скалярлық арифметикалық ӛрнек. Мысалы:
204
d = 1997
c = b+e+SQRT(d+4)
Скалярлық операторда қайта меншіктеу рұқсат етілмейді, сондықтан
k=k-1 түріндегі оператор анықтама бойынша дұрыс емес дептесептеледі.
ASSUME операторы облыста анықталған шамалардың арифметикалық
мәндерін есептеу үшін пайдаланылады. Бұл оператордың семантикасы келесі
түрде анықталады. Шартты түрде жазылған қатынасты қарастырайық:
FOR
D(i
Достарыңызбен бөлісу: