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

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

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

arithm-expression comp-operation arithm-expression

condition-on-domain :

log-expression

condition-on-index :

name-index rel-except-not-equal-operation

name-index [ { +,- } const-expression-without-sign ]

name-index rel-except-not-equal-operation const-expression-without-sign

Порядок выполнения операций при вычислении logical expression:

(1) вычисление арифметических выражений;

(2) выполнение операций внутри скобок ( и ) ; если таких скобок одного уровня вложенности несколько, то слева направо;

(3) вычисление отношений =,>,<,>=,<=,<>,>< ; если таких операций одного уровня несколько, то слева направо.

(4) выполнение операций логического отрицания NOT ; если таких операций одного уровня несколько, то справа налево;

(5) выполнение операций логического умножения AND , если таких операций одного уровня несколько, то слева направо;

(6) выполнение операций логического сложения OR , если таких операций одного уровня несколько, то слева направо.

Примеры логических выражений:

ABS(MOD-X1+Y1)<=1.0D-20

NOT (II=(2*N+1)*(2*NV+1) AND NU=0)

I=J+1

4. Структура программы

program :

{ part }+

part :

main-part

simple-part

part-function

main-part :

MAIN PART name-part . declaration-of-part

simple-part :

PART name-simple-part . declaration-of-part

part-function :

FUNCTION name-function [type-function] . declaration-of-function

declaration-of-part :

formal-parameters-of-part BEGIN body-of-part END PART

formal-parameters-of-part :

[ list-name ] [RESULT list-name]

declaration-of-function :

formal-parameters-of-function BEGIN body-of-part END PART

formal-parameters-of-function :

list-name

body-of-part :

{ element-of-part }*

element-of-part :

declaration .

operator .

iteration .

Программа на Норме состоит из одного или нескольких разделов. Разделы могут быть трех видов - главный раздел, простой раздел и раздел-функция, вид раздела определяется ключевыми словами MAIN PART, PART, FUNCTION соответственно.

Разделы могут вызывать друг друга по имени и передавать данные при помощи механизма формальных и фактических параметров, или через внешние файлы при помощи описаний INPUT и OUTPUT

Для каждого раздела справедливо правило локализации: имена, описанные в разделе, локализованы в этом разделе; понятие глобальных переменных в языке отсутствует.

Главный раздел обязательно должен присутствовать в программе на Норме и быть единственным; формальных параметров он не имеет. Вызовы главного раздела, а также рекурсивные вызовы разделов запрещены.

В заголовке раздела указывается имя раздела и список формальных параметров. Формальные параметры должны быть описаны в теле раздела при помощи declaration-of-scalar-variables, declaration-of-variables-on-domains или declaration-of-external

Параметры-величины, указанные до ключевого слова RESULT в списке формальных параметров, являются исходными данными для вычислений, описываемых в разделе; параметры, перечисленные после - являются результатами вычислений. Один и тот же параметр не может быть одновременно исходным и результатом: это приводит к переприсваиванию значений переменным (повторному присваиванию), что запрещено в Норме. В разделе-функции ключевое слово RESULT не используется: результат вычисления функции связывается с именем и типом функции.

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

MAIN PART Linear . ! Variant of May 25 1998 :

! ======= linear approximation ========

! the case of axial symmetry for M=1 ;

! computation is being done on Beta angle for the point I=0 ;

! further for I=1,2*N values

! are being extended on symmetry for V,FI,DAVL .

BEGIN

body of part

END PART

Пример заголовка простого раздела:

PART IntFKP .

! Computation of integral from FKP function

! with interpolation of integral function

BETA,ALPHA, ! - node points

ALL,ALC,ALR, ! - points for interpolation

STEP, ! - integration step

FKP ! - name of integral function

! - result IntResult

RESULT IntResult

BEGIN

EXTERNAL FUNCTION FKP DOUBLE .

VARIABLE ALPHA,BETA,ALL,ALK,ALR,STEP,IntResult DOUBLE .

body of part

END PART

5. Конструкции языка Норма

Конструкции языка Норма делятся на описания, определяющие объекты программы, например, области, индексы, величины, которые необходимы при решении задачи, и конструкции для спецификации правил вычисления.

5.1. Описания

declaration :

declaration-of-domain

declaration-of-domain-indexes

declaration-of-scalar-variables

declaration-of-variables-on-domains

declaration-of-distribution-indexes

declaration-of-domain-parameters

declaration-of-input

declaration-of-output

declaration-of-external

В Норме могут быть описаны следующие объекты: области, скалярные величины (скаляры), величины, определенные на сетке, индексные конструкции, индексы распределения, параметры области, входные и выходные величины, имена внешних функций и разделов.

5.1.1. Описание областей

declaration-of-domain :

declaration-of-unconditional-domain

declaration-of-conditional-domain

declaration-of-unconditional-domain

declaration-of-rectangular-domain

declaration-of-diagonal-domain

domain :

new-domain-without-name

name-domain

unconditional-domain :

new-domain-without-name

name-unconditional-domain

name-domain :

name-unconditional-domain

name-conditional-domain

name-unconditional-domain :

name-rectangular-domain

name-diagonal-domain

Понятие области введено в языке Норма для представления понятия индексного пространства. Область - это совокупность целочисленных наборов {i1,....,in }, n>0, ij>0, j=1,...,n, каждый из которых задает координаты точки n-мерного индексного пространства. С каждым направлением (осью координат) n-мерного пространства задачи связывается уникальное имя - имя индекса (имя оси координат индексного пространства).

Следует отметить, что область определяет значения координат точек индексного пространства, а не значения расчетных величин в этих точках. Например, если требуется вычислить значения величины Yi,j, i.j =1,...,n на некоторой сетке Xi,j, i,j =1,...n, введенной при решении задачи (например, формулой вида Xi,j =F(h,i,j), F - заданная функция, h - заданный параметр), то следует:

  1. описать область, состоящую из точек i,j = 1,...n;

(2) описать на этой области величины X и Y;

(3) задать на этой области правило вычисления значений сетки Xi,j : Xi,j = F(h,i,j) и правило вычисления значений Yi,j : Yi,j = G(Xi,j ) (считается, что F,G,h также некоторым способом заданы).

В языке Норма область может иметь имя, над областями определены операции модификации и произведения. Индексы областей специально не описываются - они вводятся при определении областей. Область может быть условной и безусловной. Условная область состоит из точек индексного пространства, число и координаты которых могут меняться в зависимости от выполнения (или не выполнения) условий на область. Безусловная область состоит из точек индексного пространства, число и координаты которых могут быть определены на этапе трансляции.

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

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

declaration-of-rectangular-domain :

multidimensional-domain

new-domain

multidimensional-domain :

onedimensional-domain

[ name-multidimensional-domain : ] ( domain-product )

domain-product :

component-domain { ; component-domain }+

component-domain :

multidimensional-domain

name-unconditional-domain

onedimensional-domain :

[ name-onedimensional-domain : ] ( name-index = value )

value :

range

const-expression

range :

const-expression .. const-expression

new-domain :

[ name-new-domain : ] new-domain-without-name

new-domain-without-name :

name-unconditional-domain / list-modification

modification :

name-index = value

name-onedimensional-domain { { +,- } boundary-function }+

boundary-function :

LEFT( const-expression )

RIGHT( const-expression )

name-rectangular-domain :

name-onedimensional-domain

name-multidimensional-domain

name-new-domain

declaration-of-diagonal-domain :

name-diagonal-domain : name-unconditional-domain / list-condition-on-index

Ключевым понятием при описании прямоугольных областей является понятие одномерной области. Одномерная область служит для задания диапазона точек на некоторой оси координат индексного пространства. В простейшем случае при описании одномерной области указывается имя одномерной области, имя индекса и границы изменения значений индекса:

RegionK: (k =1..15) .

Имя-одномерной-области может использоваться для ссылки на эту область.

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

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

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