norma-r (1158383), страница 4

Файл №1158383 norma-r (Раздаточные материалы) 4 страницаnorma-r (1158383) страница 42019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Имя-индекса есть индексная переменная, множество значений которой определяется диапазоном const-expression .. const-expression. Границами диапазона являются целые положительные константные выражения, построенные из целых констант, параметров области и арифметических операций. Требуется, чтобы в программе всем параметрам области были присвоены конкретные значения в описании параметров области. Значение нижней границы диапазона должно быть не больше значения верхней границы.

Многомерная область строится при помощи операции “;” произведения прямоугольных областей.

Пример описания двумерной области, полученной с помощью операции произведения одномерных областей AxisK и AxisL:

Square: (AxisK : (k=1..15) ; AxisL : (l=1..5) ) .

Область Square может быть описана также другими способами (например, с учетом описания, приведенного выше):

Square : (RegionK ; AxisL : (l=1..5) ).

Операция “;” произведения прямоугольных областей обладает следующим свойством: если A и B - области, то A;B=B;A .

Это означает, что порядок направлений индексного пространства при описании области не фиксируется (или, что с точки зрения пользователя то же самое, фиксируется некоторым произвольным образом). Если порядок направлений индексного пространства существенен (например, необходимо согласование направлений при использовании величин на одних и тех же областях в различных разделах), то он может быть задан при помощи описания INDEX (см. п. 5.1.2).

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

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

name-onedimensional-domain {+,-} LEFT(n)

или

name-onedimensional-domain {+,-} RIGHT(n).

Например, описание

FlushK : Square / AxisK - LEFT(2) + RIGHT(2) .

определяет область FlushK, состоящую из точек k=3 .. 17.

Границы диапазона, получаемого в результате применения функций LEFT или RIGHT, должны быть положительными целыми, причем левая граница не должна превосходить правую.

Описание

Square2: Square / AxisK+Left(1)-Right(2) .

неверно, так как левая граница получаемого в результате диапазона k=0..13 не является положительной.

Область, модифицируемая при помощи функций Left или Right должна быть многомерной областью.

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

Newsquare: Square / AxiisK+RIGHT(3), L=50...80.

Если список модификаций содержит более одного элемента, то заданные в этом списке модификации действуют на модифицируемую область в порядке написания слева направо.

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

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

KL: ( (k=1..10) ; (l=1..10) ) . Diagonal: KL/ k=l.

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

Индексы величин, используемых при записи условия на индексы, не обязательно должны входить в множество индексов области D, на которую накладываются условия --- это могут быть внешние индексы (см. п. 5.2.3.2).

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

5.1.1.2. Описание условной области

declaration-of-conditional-domain :

name-conditional domain , name-conditional-domain : name-domain / condition-on-domain

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

Идея задания условной области заключается в следующем. Ранее определенная область D разбивается на две непересекающиеся подобласти D1 и D2. Первая подобласть состоит из точек области D , в которых заданное условие на область принимает значение “истина”, вторая - из точек, в которых оно принимает значение ’’ложь’’. При этом D1 D2= D , D1 D2= .

Например, пусть заданы области:

Domain: ( ( i=2..n) ) ; ( j=1..m ) ) .

Domain1,Domain2: Domain / x+y[ i-1, j ] - z[ j+1 ] > 0 .

Это описание определяет разбиение исходной области Domain на области Domain1 и Domain2, такие, что

Domain1 Domain2 = Domain, Domain1 Domain2 = .

Область Domain1 состоит из точек Domain, в которых условие x+y[i-1, j] - z[j +1] > 0 принимает значение “истина”, Domain2 - из точек, в которых условие принимает значение “ложь”.

Индексы величин, используемых при записи условия, не обязательно должны входить в множество индексов области D, на которую накладываются условия - это могут быть внешние индексы (см. п. 5.2.3.2).

Ниже приведен фрагмент программы, описывающий условные области Bf2PI и BfNot2PI, затем область BfNot2PI разбивается на условные области Nodes и NotNodes, а область NotNodes - в свою очередь на условные области DomainTrue, DomainFalse:

DOMAIN PARAMETERS N=3, NV=3 .

Bnu : (Nu=0..2*N) . Bf : ( II=0..(2*N+1) * (2*NV+1 ) . BfNu : (Bf ; Nu) .

Bf2PI , BfNot2PI : BfNu / II=(2*N+1)*(2*NV+! ) AND NU=0 .

Nodes , NotNodes : BfNot2PI / ABS (BTNodes -BT ) < 0.0001 .

DomainTrue , DomainFalse : Nodes / ABS(BTNu - BTNodes ) < 0.0001 .

VARIABLE BT, BTNodes DEFINED ON Bf DOUBLE .

VARIABLE BTNu DEFINED ON Bnu DOUBLE .

5.1.2. Описание индексов областей

declaration-of-domain-indexes :

INDEX list-name-index

При описании области порядок направлений индексного пространства не фиксируется (или, что с точки зрения автора программы то же самое, фиксируется некоторым произвольным образом). Если порядок направлений индексного пространства существенен (например, необходимо согласование направлений при использовании величин на одних и тех же областях в различных разделах), то он задается при помощи описания индексов областей. Порядок направлений индексного пространства совпадает с порядком перечисления имен индексов в описании INDEX (слева направо).

Рассмотрим вызов раздела B из раздела A с передачей из раздела A в раздел B значений величины X, определенной на области SquareInA:

PART A.

BEGIN

INDEX k,l .

SquareInA.: (AxisK: (k=1..5) ;AxisL: (l=1..10) ).

VARIABLE X DEFINED ON SquareInA.

COMPUTE B( X ON SquareInA).

END PART

PART B. X

BEGIN

INDEX i,j.

SquareInB : (AxisK: (i=1..5) ; AxisL: (j=1..10) ) .

VARIABLE X DEFINED ON SquareInB.

END PART

Описания INDEX k,l и INDEX i,j устанавливают соответствие между индексами: i~k,j~l , то есть значения величины X трактуются в обоих разделах одинаково. Если описание INDEX i,j из раздела B заменить на INDEX j,i , то значения по соответствующим направлениям оказываются несогласованными: 5 10, 10 5.

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).

Характеристики

Список файлов учебной работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее