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

5.9. Фраза PICTURE (ШАБЛОН)

Назначение

Фраза PICTURE (ШАБЛОН) описывает общие характеристи­ки и требования редактирования элементарного данного.

О б щ и й формат

1 PICTURE )

j IS строка-литер

( ШАБЛОН )

1 щ 1 строка-литер

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

Фраза PICTURE (ШАБЛОН) может быть задана только на уровне элементарного данного.

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

Для символов шаблона А, В, Р(М), S(3), V(T), X, Z(n)s CR(KP), DB (ДБ) строчные буквы эквивалентны в описании стро­ки литер шаблона прописным буквам. Остальные строчные буквы не эквивалентны соответствующим прописным буквам.

Строка-литер может содержать не более 30 литер.

Фраза PICTURE (ШАБЛОН) должна быть определена для каждого элементарного данного, за исключением индексного дан- ного I или предмета фразы RENAMES (ПЕРЕИМЕНОВЫВАЕТ). | В этих случаях использование фразы PICTURE (ШАБЛОН) запрещено.

РІС (Ш) есть сокращение слова PICTURE (ШАБЛОН).

Звездочка в строке-литер, используемая как символ подав­ления нуля, и фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) не могут появляться в одной и той же статье.

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

Имеется пять категорий данных, которые могут быть опи­саны фразой PICTURE (ШАБЛОН): буквенная, числовая, буквен­но-цифровая, буквенно-цифровая редактируемая и числовая ре­дактируемая.

Данное определяется как буквенное, если:

строка-литер его шаблона содержит только символ А;

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

Данное определяется как числовое, если:

строка литер шаблона данного состоит только из символов 9, Р(М), S(3) и V(T), при этом количество цифровых позиций, зада­ваемых строкой-литер шаблона, должно быть от 1 до 18 включи­тельно;

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

Данное определяется как буквенно-цифровое, если:

строка-литер шаблона данного ограничивается некоторыми ком­бинациями символов А, X, 9, при этом данное обрабатывается так, будто строка-литер шаблона содержит только литеры X. Строка- литер шаблона, которая состоит только из литер А или только из литер 9, не определяет буквенно-цифровое данное;

значение данного, будучи представлено в стандартном формате данных, состоит из любых литер набора литер машины.

Данное определяется как буквенно-цифровое редактируе­мое если:

строка-литер шаблона данного представляется некоторыми комбинациями символов А, X, 9, В, 0 (нуль) или /, при этом долж­на содержать по крайней мере один из символов А или X и по край­ней мере один из символов В, 0 (нуль) или /;

значение данного, будучи представлено в стандартном форма­те данных, состоит из любых литер набора литер машины.

Данное определяется как числовое редактируемое, если:

строка-литер его шаблона представляется некоторыми комби­нациями символов В, /, Р(М), V(T), Z(FI), 0, 9, „ *, +, —>

CR(KP), DB (ДБ) и символа валютного знака; допустимые ком­бинации этих символов определяются правилами предшествования ■символов и редактирования. Максимальное число цифровых пози­ций данного, определяемых строкой-литер, равно 18. Строка-литер должна содержать по крайней мере один из символов О, В, /, 2(П), *, +, „ , CR(KP), ЦБ (ДБ) или символ валютного знака;

содержимое каждой из позиций литер должно соответствовать указанному для нее символу шаблона.

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

Целое, заключенное в круглые скобки и следующее за симво­лами А, „ X, 9, Р(М), Z(H), », +, В, 0, /, — или валютным знаком, указывает число повторений символа. Символы S(3), V(T), ., CR(KP), ОВ(ДБ) могут появляться в одном шаблоне только один раз.

Функции символов, используемых для описания элементар­ного данного, поясняются ниже;

А — каждый символ А в строке-литер предстайляет позицию литеры, которая может содержать только букву или пробел,

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

Р(М) — каждый символ Р(М) указывает на подразумеваемую десятичную позицию; кроме того, если точка не находится между цифрами, представляющими число, литеры Р(М) используются для указания места подразумеваемой десятичной точки. Литеры Р(М) не учитываются при определении размера данного. Литеры Р(М) учитываются при определении максимального числа циф­ровых позиций (не превышающего 18) в числовых редактируемых данных или в данных, которые появляются в качестве операндов в арифметических операторах. Литеры Р(М) могут появляться в строке-литер шаблона только справа или только слева в виде не­прерывной последовательности. Так как литера Р(М) предпола­гает наличие подразумеваемой десятичной точки (слева от всех Р(М), если все Р(М) являются самыми левыми литерами шабло­на, и справа от всех Р(М), если все Р(М) являются самыми пра­выми литерами шаблона), символ подразумеваемой точки V(T) является излишним. Литера Р(М.) и литера вставки «.» не могут использоваться одновременно в одной и той же строке-литер шаб­лона.

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

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

любым операциям, требующим пересылки числового операнда;

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

оператору MOVE (ПОМЕСТИТЬ), в котором пересылаемый операнд является числовым редактируемым и его шаблон содер­жит символ Р(М), а принимающий операнд является числовым или числовым редактируемым;

операции сравнения, в которой оба операнда числовые.

Во всех других операциях десятичные позиции, определенные при помощи символа Р(М), игнорируются и не учитываются при подсчете размера операнда.

S(3) — символ S(3) используется в строке-литер для указания наличия знака числа, не определяя при этом позицию или представ­ление знака. Символ S(3) должен быть записан как самая левая литера в шаблоне. Символ S(3) не учитывается при определении размера элементарного данного, если статья описания этого дан­ного не содержит фразу SEPARATE CHARACTER (ЗНАК ОТ­ДЕЛЬНО) (п. 5.12 настоящей части).

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

X — каждый символ X в строке-литер представляет позицию литеры, содержащую любую допустимую литеру из набора литер машины и подсчитывается при определении размера данного.

Z(H) — каждый символ Z(H) в строке-литер представляет ле­вые ведущие позиции цифр числа, которые должны быть заменены пробелами, если содержимое этих позиций окажется нулем. Каж­дый символ Z(H) подсчитывается при определении размера данно­го.

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

О — каждый символ 0 (нуль) в строке-литер представляет по-; зицию литеры, в которую будет помещен числовой нуль. О подсчи­тывается при определении размера данного.

/ — каждый символ / (дробная черта) в строке-литер пред­ставляет позицию литеры, в которую будет помещена дробная черта. Символ / подсчитывается при определении размера данно­го.

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

. — символ . (точка) появляется в строке-литер в качестве ре-' дактирующего символа, представляющего десятичную точку, по которой происходит выравнивание и, кроме того, представляет по­зицию, в которую будет помещена литера «.». Литера «.» подсчи­тывается при определении размера данного. Для данной програм­мы функции точки и запятой меняются, если в параграфе SPE­CIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) приведена фраза DECIMAL POINT IS СОММА (ДЕСЯТИЧНАЯ ТОЧКА ЗАПЯ­ТАЯ); в этом случае правила для точки применяются к запятой и правила для запятой применяются к точке, где бы они ни встреча­лись во фразе PICTURE (ШАБЛОН).

+, —, CR(KP), ОВ(ДБ) — эти символы при использовании представляют позицию литеры, в которую будет помещен редакти­рующий символ, управляемый знаком. Эти символы являются взаимно исключающими в любой строке-литер, и каждая литера, используемая в качестве символа редактирования, подсчитывается при определении размера данного.

*— каждый символ * (звездочка) в строке-литер представляет позицию ведущей числовой литеры, в которую, если содержимое этой позиции окажется нулем, будет помещена звездочка. Каждый символ * подсчитывается при определении размера данного.

Валютный символ — валютный символ в строке-литер пред­ставляет позицию литеры в данном, в которую должен быть поме­щен валютный знак. Валютный символ в строке-литер представ­ляется либо валютным знаком, либо литерой, определенной во фразе CURRENCY SIGN (ВАЛЮТНЫЙ ЗНАК) в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА).

Валютный символ учитывается при определении размера дан­ного.

П р а в и л а редактирования

Имеются два общих метода редактирования во фразе PICTURE (ШАБЛОН): либо путем вставки, либо путем подавле­ния и замещения. Допустимы четыре типа редактирования встав­кой;

простая вставка;

специальная вставка;

фиксированная вставка;

плавающая вставка.

Имеются два типа редактирования посредством подавления и замещения нулей;

подавление нуля и замещение пробелами;

подавление нуля и замещение звездочками.

Тип редактирования, который может выполняться над дан­ным, зависит от категории, к которой данное принадлежит. Ниже ■определяется тип редактирования, разрешенный для данной кате­гории;

Т Категория

ип редакгиронания

Б Никакой

Никакой

Никакой

Простая вставка О, В и /

Все типы с учетом правила 3

уквенная

Числовая

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

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

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

Во фразе PICTURE (ШАБЛОН) редактирование плаваю­щей вставкой и редактирование подавлением и замещением нуля взаимно исключаются. Во фразе PICTURE (ШАБЛОН) может быть использован только один тип замещения при подавлении ну­ля.

Редактирование простой вставкой указывается символами шаблона: , (запятая), В (пробел), / (дробная черта) и 0 (нуль). Литеры вставки учитываются при определении размера данного и представляют позицию в данном, в которую будет вставлена лите­ра, соответствующая символу шаблона. Если литера вставки , (за­пятая) является последним символом в шаблоне, фраза PICTURE (ШАБЛОН) должна быть последней фразой статьи описания дан­ного и за ней непосредственно должен следовать разделитель точ­ка. В результате в статье описания данного появляется комбина­ция «,.» или две последовательные точки, если используется фра­за DECIMAL-POINT IS СОММА (ДЕСЯТИЧНАЯ ТОЧКА ЗАПЯ­ТАЯ).

При редактировании специальной вставкой в качестве ли­теры вставки используется символ . (точка), которая кроме того служит для выравнивания. Литера вставки для явной десятичной точки учитывается при определении размера данного. В одной и той же строке-литер шаблона не разрешается использование под­разумеваемой десятичной точки, представленной символом V (Т), и явной десятичной точки, представленной символом вставки. Ес­ли литера вставки является последней литерой шаблона, то фра­за PICTURE (ШАБЛОН) должна быть последней фразой в статье •описания данного и за ней непосредственно должен следовать раз­делитель точка. В результате в статье описания данного появляют­ся две последовательные точки или комбинация,. , если использу­ется фраза DECIMAL-POINT IS СОММА (ДЕСЯТИЧНАЯ ТОЧ­КА ЗАПЯТАЯ).

Результатом редактирования специальной вставкой является появление литеры специальной вставки в значении данного на по­зиции, указанной в строке-литер шаблона.

Редактирование фиксированной вставкой указывается ва­лютным символом и символами редактирования, управляемыми знаком: +, —, CR(KP), ОВ(ДБ).

В данной строке-литер шаблона может быть использован толь­ко один валютный символ и только один из символов редактиро­вания, управляемых знаком. Если используются символы CR (КР) и DB (ДБ), они представляют две самые правые позиции литер и учитываются при определении размера данного. Если использует­ся символ + или —, он должен быть самой левой или самой пра­вой позицией литеры, которая учитывается при определении раз­мера данного. Валютный знак должен быть самой левой позицией литеры, кроме случаев, когда ему может предшествовать символ + или символ —; валютный знак учитывается при определении размера данного. При редактировании фиксированной вставкой в редактируемое данное помещается литера вставки, управляемая знаком, на позицию литеры, которую эта литера занимает в стро­ке-литер шаблона.

Зависимость результатов редактирования фиксированной вставкой от значения данного приведена ниже.

Редактирующий символ в строке-литер шаблона

Литеры вставки, появляющиеся в редактируемом данном

Данное положитель­ное или нуль

Данное отрицательное

+

+

Пробел

CR (КР)

'2 пробела

CR (КР)

'DB (ДБ)

То же

DB (ДБ)

Редактирование плавающей вставкой указывается валют­ным символом и редактирующими символами, управляемыми зна­ком + или —, которые являются литерами плавающей вставки, взаимно исключающими друг друга в данной строке-литер шабло­на.

Редактирование плавающей вставкой указывается в строке- литер шаблона цепочкой из двух или более литер плавающей вставки. Цепочка литер плавающей вставки может содержать лю­бые символы фиксированной вставки или предшествовать литерам фиксированной вставки. Литеры простой вставки рассматриваются как часть цепочки литер плавающей вставки. Если литерой плава­ющей вставки является валютный символ, то цепочка литер плава­ющей вставки может содержать литеры фиксированной вставки ■CR (КР) или DB (ДБ) непосредственно справа от этой цепочки.

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

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

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

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

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

Весь розділ →