•5.8.4. Общие правила

  1. Исключая фразу OCCURS (ПОВТОРЯЕТСЯ), все фразы описания данных, относящиеся к данному, описание которого включает фразу OCCURS (ПОВТОРЯЕТСЯ), применяются к каж­дому вхождению описанного данного,

  2. Число вхождений предмета статьи определяется следую­щим образом:

а) в формате 1 значение целого-2 представляет точное число повторений;

: б) в формате 2 текущее значение данного, именуемого име-

нем-данного-1, представляет число повторений.

Формат 2 указывает, что предмет статьи имеет переменное і число повторений. Значение целого-2 представляет максималь- і ное число повторений, а значение целого-1 — минимальное. Это не означает, что размер предмета статьи переменный, а говорит лишь только о том, что переменно число его повторений.

Всякий раз, когда ссылаются на предмет статьи или на под- : чиненное ему данное или на данное, которому подчиняется пред- ! мет статьи, значение данного, определенное именем-данного-1, ' должно принадлежать диапазону от целого-1 до целого-2. Зна- : чения данных, номера вхождений которых превышают значение . имени-данного-1, не определены.

  1. При обращении к групповому данному, содержащему данное, в статье описания которого содержится фраза OCCURS (ПОВТОРЯЕТСЯ) формата 2, используется только часть об­ласти таблицы, определяемая следующим образом:

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

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

  1. Вариант DESCENDING (ASCENDING) KEY (ПО УБЫ- ВАНИЮ/ВОЗРАСТАНИЮ КЛЮЧА) указывает, что повторя­ющиеся данные упорядочены в возрастающем или убывающем порядке в соответствии со значениями имени-данного-2, имени- данного-3 и т. д. Возрастающий или убывающий порядок опре­деляется в соответствии с правилами сравнения операндов (пп. 6.3.1.1.1 и 6.3.1.1.2 настоящей части). И мена-да иных пере­числяются в порядке уменьшения значимости.

  2. Если формат 2 используется в статье описания записи и соответствующее описание файла или описание сортируемого- сливаемого файла содержит вариант VARYING (ПЕРЕМЕН­НОЕ ЧИСЛО) во фразе RECORD (В ЗАПИСИ), то запись име­ет переменную длину. Если вариант DEPENDING ON (В ЗА­ВИСИМОСТИ ОТ) во фразе RECORD (В ЗАПИСИ) не указан, то значение данного, определяемого именем-данного-1 во фразе OCCURS (ПОВТОРЯЕТСЯ), должно быть установлено на чис­ло записываемых повторений до выполнения любого из опера­торов RELEASE (ПЕРЕДАТЬ), REWRITE (ОБНОВИТЬ) или WRITE (ПИСАТЬ).

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

  1. Назначение

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

  1. О б щ и й формат

1 PICTURE )

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

( ШАБЛОН )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Р(М) — каждый символ Р(М) указывает на подразумеваемую десятичную позицию; кроме того, если точка не находится между цифрами, представляющими число, литеры Р(М) используются для указания места подразумеваемой десятичной точки. Литеры Р(М) не учитываются при определении размера данного. Литеры Р(М) учитываются при определении максимального числа циф­ровых позиций (не превышающего 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) подсчитывается при определении размера данно­го.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

Т

Категория

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

Б

Никакой

Никакой

Никакой

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

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

уквенная

Числовая

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