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

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

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

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

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

5.1.4. Описание параметров области

declaration-of-domain-parameters :

DOMAIN PARAMETERS list-prescription

prescription :

name-domain-parameter = int-const

Границы диапазонов при описании областей могут задаваться неявно - при помощи параметров области. Значения этих параметров должны быть определены в разделе в описании параметров области, например

DOMAIN PARAMETERS M=3, J=90, DomainLeftBoundParameter=15.

Параметры области могут входить в арифметические выражения и константные выражения.

5.1.5. Описание входных и выходных величин

declaration-of-input :

INPUT list-input-scalar

INPUT input-on-domain

input-scalar :

name-scalar [ attributes ]

input-on-domain :

list input-output-variable ON unconditional domain

input-output-variable :

name-variable-on-domain [ attributes ]

declaration-of-output :

OUTPUT list-output-scalar

OUTPUT output-on-domain

output-scalar :

name-scalar [ attributes ]

output-on-domain :

list- input-output-variable ON domain

attributes :

( list-attribute )

attribute :

STR( int-constant )

string

ORDER( list-name-index )

FILE = ' file-name '

ALL

format

format :

I int-constant

{ F,E,D } int-constant . int-constant

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

B1 , B2 : B / Z<Eps.

INPUT Velocity ON A. OUTPUT Tau ON B1.

INPUT X, ALPHA.

являются запросами на ввод значений скаляров X, ALPHA, величины Velocity во всех точках области A, а также на вывод значений величины Tau во всех точках области B1, в которых выполнено условие Z<Eps .

Порядок, в котором будут вводиться (выводиться) величины при этом не задается - он определяется в процессе трансляции. Минимальная единица информации, которая вводится (выводится) как единое целое - скаляр или величина на области. Управление вводом (выводом) этих единиц может осуществляться при помощи атрибутов.

Атрибуты действуют на величину (список величин), после которой они указаны. Например, описание

INPUT R1,R2 (FILE ='myfile') ON Grid.

является запросом на ввод из файла myfile.dat значений величины R2 в области Grid, то есть для всех значений индексов этой области, и величины R1 в области Grid из файла norma.dat (имя файла по умолчанию).

Атрибуты позволяют управлять формой входных и выходных данных и связывать данные с входными и выходными файлами:

STR(n) задает пропуск n-1 строки;

‘string’ задает вывод текстовой константы string;

ORDER указывает порядок изменения индексов при выводе: самым старшим индексом является самый правый, самым младшим - самый левый; для очередного значения каждого старшего индекса младшие принимают все свои значения;

FILE задает имя входного или выходного файла; способ задания имени файла определяется при реализации (обычно входной файл по умолчанию имеет расширение .dat; при задании имени файла это расширение может быть опущено; если атрибут FILE не задан, то ввод осуществляется из файла norma.dat, а вывод -- на экран дисплея);

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

format задает формат для числовых значений при вводе и выводе и соответствует спецификаторам формата I, F, E, D в языке Фортран. По умолчанию установлены форматы: E15.8 для величин типа REAL, D15.8 для величин типа DOUBLE, I5 для величин типа INTEGER.

Для входных величин разрешены только атрибуты format и FILE.

Примеры описания входных величин:

INPUT One (FILE=‘file1’,F10.2), Two(FILE=‘file2.dat’ ) ON Grid2.

Примеры описания выходных величин:

OUTPUT Velocity(' Velocity = ' ,F9.1) .

OUTPUT X(FILE='FILE17' , ORDER(J,K,I), ALL, F5.1) ON Grid.

OUTPUT Y('Matrix of values Y parameter', FILE=‘OT5’ ,ALL,F15.2) ON ABC.

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

Синтаксис файла исходных данных:

file :

input-element { input-element }*

input-element :

name-scalar = arithm-constant;

name-variable-on-domain ( list-index-range ) = data ;

index-range :

name-index = int-constant .. int-constant

data :

list-data-element

data-element :

int-constant

body

int-constant ( data )

Программист может:

располагать элементы ввода в произвольном порядке,

изменением порядка следования индексов управлять порядком расположения числовых значений в файле,

сокращенно записывать повторяющиеся данные.

Пример содержимого файла исходных данных:

C(K=1..10)=5(-10.1) ,5(1.01);

ALPHA=3.17; BETA=-0.12; GAMMA=0.000000001;

C(K=11..20)=5(10.1),5(-1.01);

Пример содержимого файла data.dat исходных данных для программы Gauss:

MAIN PART Gauss.

! Solution of linear equations by Gauss-Jourdan method.

BEGIN

Ot:(t=0..n). Oi:(i=1..n). Oj:(j=1..n).

Oij:(Oi;Oj). Otij:(Ot;Oij).

Oti:(Ot;Oi). Otij1:Otij / t=1..n. Oti1:Oti / t=1..n.

DOMAIN PARAMETERS n=5.

VARIABLE a ON Oij. VARIABLE m ON Otij.

VARIABLE b, ON Oi. VARIABLE r ON Oti.

INPUT a(FILE='data') ON Oij, b(FILE='data') ON Oi.

OUTPUT x(FILE='results',ALL) ON Oi.

FOR Otij/ t=0 ASSUME m=a.

FOR Oti / t=0 ASSUME r=b.

OtiEQtij1,OtiNEtj1:Otij1 / i=t. OiEQti1,OiNEti1:Oti1 / i=t.

FOR OtiEQtj1 ASSUME m = m[t-1,i=t]/m[t-1,i=t,j=t].

FOR OiEQj1 ASSUME r = r[t-1,i=t]/m[t-1,i=t,j=t].

FOR OiNEtj1 ASSUME m = m[t-1]-m[t-1,j=t]*m[i=t].

FOR OiNEti1 ASSUME r = r[t-1]-m[t-1,j=t]*m[i=t].

FOR Oi ASSUME x = r [t=n].

END PART.

Входной файл data.dat:

B(I=1..3)=5.0, 13.0, 3.0;

A(I=1..5,J=1..5)=2.0, 3.0, -4.0, 5.0, -1.0,

3.0, 4.0, -1.0, 6.0, 1.0,

2.0, 0.0, -3.0, 0.0, 4.0,

0.0, 2.0, 0.0, 0.3, 0.0,

3.0, -1.0, 2(0.0), 1.0;

B(I=4..5)= 5.0, 3.0;

Значения многомерных массивов данных располагаются в файле в соответствии с указанными индексами, причем первыми меняются значения более правого индекса - в приведенном примере матрица A(I,J) задана по строкам, то есть I =1, J = 1,2,3,4,5, затем I = 2, J = 1,2,3,4,5 и так далее до I =5, J = 1,2,3,4,5.

Способ задания входного файла data.dat, конечно, не является единственным.

5.1.6. Описание внешних имен

declaration-of-external-names :

declaration-of-external-functions

declaration-of-external-parts

declaration-of-external-functions :

EXTERNAL FUNCTION list-name-external-function [ type ]

declaration-of-external-parts :

EXTERNAL PART list-name-external-simple-part

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

EXTERNAL FUNCTION Last,First DOUBLE.

EXTERNAL PART Middle.

5.1.7. Описание индексов распределения

declaration-of-distribution-indexes :

DISTRIBUTION INDEX name-index = simple-range , name-index = simple-range

simple-range :

int-constant .. int-constant

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

Данное описание приводит к распределению между ПЭ системы как данных, так и управления, и автоматической генерации операторов обмена данными между ПЭ, если это необходимо. Распределению подлежат величины, участвующие в расчетах и имеющие индексы, совпадающие с указанными в описании DISTRIBUTION INDEX.

Например, если задано описание

DISTRIBUTION INDEX i=1..8, j=1..1.

то все переменные, определенные на областях с индексами i и j, будут распределены по ПЭi,j с виртуальными номерами строк i=1..8 в столбце с номером j=1 матрицы ПЭ.

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

Описание

DISTRIBUTION INDEX i=2...8,j=0..0.

неверно: считается, что элементы матрицы ПЭ нумеруются, начиная с 1.

5.2. Операторы в языке Норма

operator :

scalar-operator

operator-ASSUME

call-part

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

5.2.1. Скалярный оператор

scalar-operator :

name-scalar = scalar-arithm-expression

scalar-arithm-expression :

arithm-expression

Скалярный оператор предназначен для вычисления арифметических значений скаляров. По существу, это аналог оператора присваивания традиционных языков программирования, в левой части которого указывается имя скаляра, а в правой части - скалярное арифметическое выражение, построенное обычным образом из скаляров, арифметических констант, параметров области, обращений к функциям, величин на области с индексами-константами.

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

IJ: ( ( i=1..MaxI) ; (j=1..MaxJ ) ).

DOMAIN PARAMETERS MaxI = 3, MaxJ = 90.

VARIABLE ScalarV INTEGER. VARIABLE Pi DOUBLE.

VARIABLE ArrayV DEFINED ON IJ DOUBLE.

ScalarV = MaxI*(MaxJ-1)/2+SQRT(PI)/SIN(ArrayV[i=1,j=55]).

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

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

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