Перейти до вмісту
ГОСТ 22558-89
/ 116

MOVE temp ТО М ПОМЕСТИТЬ пром В М

MOVE temp ТО Р (М) ПОМЕСТИТЬ пром В Р (М)

где «temp» («пром») — промежуточный результат, обеспечивае­мый реализацией.

Перемещение, в котором принимающий операнд является элементарным данным, а пересылаемый операнд — литералом ли­бо элементарным данным, называется элементарным перемещени­ем. Каждое элементарное данное принадлежит одной из следую­щих категорий: числовой, буквенной, буквенно-цифровой, числовой редактируемой, буквенно-цифровой редактируемой (см. п. 5.9 нас­тоящей части). Числовые литералы принадлежат к числовой ка­тегории, а нечисловые — к буквенно-цифровой категории. Стан­дартная константа ZERO, ZEROES (НУЛЬ, НУЛИ) при переме­щении в числовое или числовое редактируемое данное относится к числовой категории.

Во всех прочих случаях она относится к буквенно-цифровой ка­тегории.

Стандартная константа SPACE, SPACES (ПРОБЕЛ, ПРОБЕ­ЛЫ) относится к буквенной категории. Все остальные стандартные константы относятся к буквенно-цифровой категории.

К элементарному перемещению применяются следующие пра­вила:

буквенно-цифровое редактируемое, стандартная константа SPACE (ПРОБЕЛ) или буквенное данное не должны перемещать­ся в числовое или числовое редактируемое данное;

числовое или числовое редактируемое данное, числовой ли­терал и стандартная константа ZERO (НУЛЬ) не могут переме­щаться в буквенное данное;

числовой литерал, не представляющий целое число, или чис­ловое данное, имеющее значение, не являющееся целым числом, не может перемещаться в буквенно-цифровое или буквенно-цифровое редактируемое данное;

на уровне 1 числовое редактируемое данное не должно пере­мещаться в числовое или числовое редактируемое данное;

прочие элементарные перемещения являются допустимыми и выполняются согласно общему правилу (4).

(4) Во время выполнения допустимого элементарного переме­щения производятся все необходимые преобразования данного из одной формы внутреннего представления в другую, сопровождаю- щиеся редактированием, определенным для принимающего данно- го, или дередактированием, предполагаемым принимающим дан-

ным. Следующие правила применяются к допустимым элемен­тарным перемещениям:

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

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

если принимающим данным является числовое или числовое редактируемое данное, то производится выравнивание по десятич­ной точке и любое необходимое дополнение нулями согласно стан­дартным правилам выравнивания (см. ч. 4, п. 4.3.6), кроме случая, когда нули замещаются согласно требованиям редактирования. Если пересылаемый операнд является числовым редактируе­мым, требуется дередактирование для установления неотредак- тированного числового значения операнда, возможно, со знаком, затем это неотредактированное числовое значение помещается в принимающее поле.

Если принимающим является числовое данное со знаком, знак пересылаемого данного помещается в принимающее данное при этом выполняется необходимое преобразование представле­ния знака (см. п. 5.12 настоящей части). Если пересылаемое дан­

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

Если принимающее данное не имеет диака числа, при переме­щении используется абсолютное значение пересылаемого данного.

Пересылаемое данное, описанное как буквенно-цифровое, перемещается так, как если бы оно было описано как числовое це­лой без знака;

в) если принимающее поле описано как буквенное, имеет место выравнивание и необходимое дополнение пробелами по ранее оп­ределенным правилам (см. ч. 4, п. 4.3.6).

Перемещение, которое не является элементарным, рассмат­ривается как элементарное перемещение буквенно-цифрового дан­ного в буквенно-цифровое; однако при этом не выполняются преоб­разования данных из одной формы внутреннего представления в другую. При таком перемещении принимающее поле будет заполня­ться без рассмотрения особенностей отдельных элементарных или групповых данных, содержащихся в пересылаемом или принимаю- щем поле, кроме случая, отмеченного в общем правиле фразы [ [OCCURS (ПОВТОРЯЕТСЯ) (см. ч. 4, п. 5.8). |

Ниже иллюстрируются допустимые сочетания категорий операндов оператора MOVE (ПОМЕСТИТЬ).

Категория пересылаемого данного

Категория принимающего данного

Буквенная

Буквенно-цифровая, буквенно-цифровая редактируемая

Числовая (целое), числовая (нецелое), числовая редак тн- руе.мая

Буквенная

Да

По п. 4в

Да

По п. 4а

Нет

По п. За

Буквенно-цифровая

Да

По п. 4в

Да

По п. 4а

Да

По п. 46

Буквенно-цифровая редак­тируемая

Да

По п. 4в

Да

Пэ п. 4а

Нет

По п. За

Числовая (целое)

Нет

По п. 36

Да

По п. 4а

Да

По п. 46

Числовая (нецелое)

Нет

По п. 36

Нет

По п. Зв

Да

По п. 46

Числовая редактируемая

Нет

По и. 36

Да

Пэ п. 4а

Да

По п. 46

Примечание. «Да» обозначает допустимость пересылки, «нет» — запре­щение. Ссылка на общее правило указывает правило, запрещающее пересылку или объясняющее порядок перемещения.

Оператор MULTIPLY (УМНОЖИТЬ)

Назначение

Оператор MULTIPLY (УМНОЖИТЬ) позволяет перемножить числовые данные и присвоить значение произведения результату.

О б щ и й формат

Формат 1

... тт тшт V I идентификатор-! ] , о

MULTIPLY { , BY {идентификатор-2

( литерал-1 ]—

[ROUNDED])...

[ON SIZE ERROR повелительный-оператор-1]

[NOT ON SIZE ERROR повелительный-оператор-2]

[END-MULTIPLY]

vu.4T.vT/rjTT идентификатор-1 ... , , o

УМНОЖИТЬ , НА {идентификатор-2

(литерал-1 I —

[ОКРУГЛЯЯ]). ■■

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-IJ

[БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2]

[КОНЕЦ-УМНОЖИТЬ]

Формат 2

MULTIPLY ( иДентиФикат°Р-5 6 ) BY I идентификатор-2 1

(литерал-1 j і литерал-2 ]

GIVING {идентификатор-3 [ROUNDED]}...

[ON SIZE ERROR повелительный-оператор-1]

[NOT ON SIZE ERROR повелительный-оператор-2]

[END-MULTIPLY]

УМНОЖИТЬ ! чдентнфик.тор-1 ] нд І ттдевтттфнкатор-2 I литерал-1 [ ( литерал-2

ПОЛУЧАЯ {идентификатор-3 [ОКРУГЛЯЯ]}. . .

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1] [БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2]

[КОНЕЦ-УМНОЖИТЬ]

ментарное данное, за исключением формата 2, в котором любой идентификатор, который появляется только справа от слова GIVING (ПОЛУЧАЯ), должен представлять элементарное число­вое или элементарное числовое редактируемое данное.

Каждый литерал должен быть числовым литералом.

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

6.20.4. О б щ и е правила

При использовании формата 1 литерал-1 или значение дан­ного, представленного идентификаторрм-1, хранится в промежу­точном данном. Затем его промежуточное данное умножается на данное, представленное идентификатором-2. Значение множителя (значение данного, представленного идентификатором-2) заменя­ется этим произведением; аналогично промежуточное данное ум­ножается на каждое последующее вхождение идентификатора-2 в указанном порядке слева направо.

При использовании формата 2 литерал-1 или значение дан­ного, представленное идентификатором-1, умножается на лите- рал-2 или значение данного, представленного идентификатором-2, а результат хранится в данном, представленном каждым иденти- фикатором-3.

Дополнительные правила и пояснения^ относящиеся к это­му оператору, приводятся в соответствующих параграфах (см. ч. 4, п. 6.4.3; ч. 6, пп. 6.4.1, 6.4.2, 6.4.4—6.4.6).

6.21. Оператор PERFORM (ВЫПОЛНИСЬ)

Назначение

Оператор PERFORM (ВЫПОЛНИТЬ) используется для явной передачи управления одной или нескольким процедурам и неявного возврата управления после завершения этих процедур. Оператор PERFORM (ВЫПОЛНИТЬ) используется также для управления выполнением одного или более повелительных операторов, находя­щихся в области действия этого оператора PERFORM (ВЫПОЛ­НИТЬ).

Общий формат

Ф J THROUGH I THRU

ормат 1

PERFORM [имя-процедуры-1 [

имя-процедуры-2] ]

[повелительный-оператор-1 END-PERFORM]

ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя-процедуры-2] ]

Ф (THROUGH

I THRU

ормат 2

PERFORM [имя-процедуры-1 [

и идентификатор-1 целое-1

мя-процедуры-2] ]

TIMES [повелительный-оператор-1

END-PERFORM] ■.

ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя-процедуры-2]]

{


идентификатор-1 1 [ РАЗ целое-1 і I РАЗА

[повелительный-оператор-1 КОНЕЦ-ВЫПОЛНИТЬ]

Ф UNTIL условие-1

(THROUGH [THRU

ормат 3

PERFORM [имя-процедуры-1

имя-процедуры-2] ]

Г WITH TFQT і BEF°RE 1 ]
[WITH test|after [ I

[повелительный-оператор-l END-PERFORM]

ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя-процедуры-2]]

ДО условие-1


{НДЧА ПР 1

КОНЦЕ I

[повелительный-оператор-1 КОНЕЦ-ВЫПОЛНИТЬ]

Ф I THROUGH

I THRU

ормат 4

PERFORM [имя-процедуры-

1

VARYING ! “^нтификатор-2

1 имя-индекса-1

B идентификатор-3 имя-индекса-2 литерал-1

FROM

Y I идентификатор! I UNT|L е4

имя-индекса-4 идентификатор-6 литерал-3


FROM


идентификатор-5 имя-индекса-3


AFTER


[ литерал-2 J

идентификатор-7 о

BY I , r J UNTIL условие-2

— ( литерал-4 J

[ повел ительный-оператор-1 END-PERFORM]

ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя-процедуры-2] ]

идентификатор-6 имя-индекса-4 литерал-3


идентификатор-5 имя-индекса-3


ЗАТЕМ


идентификатор-3 имя-индекса-2 литерал-1

НАЧАЛЕ)

КОНЦЕ I


С ПРОВЕРКОЙ В

МЕНЯЯ ( Ше"™фИК2Т' ) ОТ

[ имя-индекса-1 |

„. идентификатор-4 „„ .

НА) „ ДО условие-1

[ литерал-2

11А идентификатор-7 ] о

НА { а } ДО условие-2 ...

[ литерал-4 J I

[повелительный-оператор-1 КОНЕЦ-ВЫПОЛНИТЬ]

С и н т а к с и ч е с к и е правила

Если опущено имя-процедуры-1, должны быть определены повелительный-оператор-1 и фраза END-PERFORM (КОНЕЦ- ВЫПОЛНИТЬ), если определено имя-процедуры-1, не должны употребляться повелительный-оператор-1 и фраза END-PERFORM (КОНЕЦ-ВЫПОЛНИТЬ).

При использовании формата 4, если опущено имя-проце- дуры-1, не должна употребляться фраза AFTER (ЗАТЕМ).

Если не указаны ни фраза TEST BEFORE (С ПРОВЕР­КОЙ В НАЧАЛЕ), ни фраза TEST AFTER (С ПРОВЕРКОЙ В КОНЦЕ), предполагается по умолчанию TEST BEFORE (С ПРОВЕРКОЙ В НАЧАЛЕ).

Каждый идентификатор представляет числовое элементар­ное данное, описанное в разделе данных. В формате 2 идентифика­тор-1 представляет целое числовое элементарное данное.

Каждый литерал является числовым литералом.

Если указана фраза END-PERFORM (КОНЕЦ-ВЫПОЛ- НИТЬ), оператор PERFORM (ВЫПОЛНИТЬ) является операто­ром с ограничителем области действия.

Если во фразе VARYING (МЕНЯЯ) или AFTER (ЗА­ТЕМ) указано имя-индекса, то:

идентификатор, относящийся к фразам FROM (ОТ) и BY (НА), должен представлять положительное целое;

литерал, относящийся к фразе FROM (ОТ), должен пред­ставлять положительное целое;

литерал, относящийся к фразе BY (НА), должен представ­лять целое, отличное от нуля.

Если во фразе FROM (ОТ) задано имя-индекса, то:

идентификатор, относящийся к фразам VARYING (МЕ­НЯЯ) и AFTER (ЗАТЕМ), должен представлять целое;

идентификатор, относящийся к фразе BY (НА), должен представлять целое;

литерал, относящийся к фразе BY (НА), должен предс­тавлять целое.

Литерал во фразе BY (НА) не должен равняться нулю.

Условие-1, условие-2, ... могут быть любыми условными выражениями (см. п. 6.3 настоящей части).

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

I (12) Допускаются до шести фраз AFTER (ЗАТЕМ) в фор- I мате 4 оператора PERFORM (ВЫПОЛНИТЬ).

Общие правила

Значения данных, на которые ссылаются идентифика­тор-4 и идентификатор-7, не должны быть равными нулю.

Если в фразах VARYING (МЕНЯЯ) и AFTER (ЗАТЕМ) указано имя-индекса и в соответствующей фразе FROM (ОТ) задан идентификатор, то значение данного, на которое ссылает­ся идентификатор, должно быть положительным.

Побачили розбіжність з офіційним текстом?

Повідомити про неточність

Напишіть, що саме розходиться з офіційною публікацією. Код документа вкажіть у повідомленні — так ми швидше знайдемо потрібне місце.

Перейти до форми зворотного зв'язку

Дивіться також

Весь розділ →