Фраза об использовании
Назначение
Фраза об использовании определяет формат данного в памяти |
|||
машины. 5.14.2. |
Общий формат |
|
|
USAGE IS |
BINARY COMPUTATIONAL COMP DISPLAY INDEX PACKED-DECIMAL ■ - .. .■ |
|
ДВОИЧНОЕ
ДЕСЯТИЧНОЕ
I
ВЫЧИСЛЕНИИ ВЫЧ ВЫДАЧИ ИНДЕКСА
дляС и н т а к с и ч е с к и е правила
Фраза об использовании может быть указана в любой статье описания данного с номером уровня, отличным от 66 или 88 •
Если фраза об использовании указана в статье описания группового данного, она также может быть указана в статье описания любого подчиненного элементарного или группового данного, но в обоих случаях должно быть указано одинаковое использование.
Элементарное данное, описание которого содержит фразы BINARY (ДВОИЧНОЕ), COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕНИЙ) или PACKED-DECIMAL (ДЕСЯТИЧНОЕ), или элементарное данное, подчиненное групповому данному, описание которого содержит указанные фразы, должно быть описано строкой-литер шаблона, определяющей числовые данные, т. э. строкой-литер шаблона, содержащей только символы Р (М), S (3), V (Т), 9.
СОМР (ВЫЧ) является сокращением слова COMPUTATIONAL (ВЫЧИСЛЕНИЙ).
На индексное данное явно можно ссылаться только в операторах SEARCH (ИСКАТЬ) или SET (УСТАНОВИТЬ), условии отношения, во фразе USING (ИСПОЛЬЗУЯ) заголовка раздела процедур или во фразе USING (ИСПОЛЬЗУЯ) оператора CALL (ВЫЗВАТЬ).
Фразы BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ), JUSTIFIED (СДВИНУТО), PICTURE (ШАБЛОН), SYNCHRONIZED (ВЫДЕЛЕНО) и VALUE (ЗНАЧЕНИЕ) не должны указываться для данного, которое используется как индексное.
Элементарное данное, описанное фразой INDEX (ДЛЯ ИНДЕКСА), не должно быть условной переменной.
Общие правила
Если фраза об использовании написана на уровне группового данного, она относится к каждому элементарному данному группы.
Фраза указывает способ представления данного в памяти машины. Она не влияет на использование данного, хотя спецификации для некоторых операторов в разделе процедур могут ограничить фразу об использовании для операндов, к которым производится обращение. Фраза об использовании может влиять на вы- 290
бор основания системы счисления или на тип представления данного.
Фраза BINARY (ДВОИЧНОЕ) означает, что двоичное основание используется для представления числового данного в памяти машины. Каждая реализация определяет точное воздействие фразы BINARY (ДВОИЧНОЕ) на выравнивание и представление данного в памяти машины, включая представление алгебраического знака. Реализацией должно быть распределено достаточно памяти для размещения десятичных значений максимального диапазона, определяемого строкой литер шаблона.
Фраза COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕНИЙ) определяет используемые реализацией основание и формат представления числового данного в памяти машины. Конкретная реализация определяет точное воздействие фразы COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕНИЙ) на выравнивание и представление данного в памяти машины, включая представление алгебраического знака и допустимый диапазон значений данных.
Фраза DISPLAY (ДЛЯ ВЫДАЧИ) (указанная явно или неявно) определяет, что для представления данных в памяти машины используется стандартный формат данных и что данные выравниваются на границе символа.
Если для элементарного данного или любой группы, к которой принадлежит данное, не задана фраза об использовании, то подразумевается использование DISPLAY (ДЛЯ ВЫДАЧИ).
Фраза INDEX (ДЛЯ ИНДЕКСА) определяет данное как индексное данное, содержащее значение, соответствующее номеру вхождения элемента таблицы. Точное воздействие фразы INDEX (ДЛЯ ИНДЕКСА) на выравнивание и представление данного в памяти машины, включая действительные значения, присвоенные любому номеру вхождения элемента таблицы, определяет конкретная реализация.
При выполнении оператора MOVE (ПОМЕСТИТЬ) или оператора ввода-вывода, использующих групповое данное, содержащее индексное данное, никакого преобразования индексного данного не происходит.
Фраза PACKED-DECIMAL (ДЕСЯТИЧНОЕ) указывает, что для представления числового данного в памяти машины используется десятичное основание. Более того, она указывает, что каждая десятичная позиция должна занимать наименьшую возможную область памяти машины. Каждая реализация определяет точное воздействие фразы PACKED-DECIMAL (ДЕСЯТИЧНОЕ) на выравнивание и представление данного в памяти машины, включая представление любого алгебраического знака. Для размещения максимального значения, соответствующего десятичным позициям числа, определяемого строкой литер шаблона, реализацией должен быть выделен достаточный объем памяти.Фраза VALUE (ЗНАЧЕНИЕ)
Назначение
Фраза VALUE (ЗНАЧЕНИЕ) задает начальное значение данных рабочей памяти, начальное значение данных в секции коммуникаций и значения, связанные с именем-условия.
О б щ и й формат
Формат 1
V
/ЗНАЧЕНИЕ І ЗНАЧ
ALUE IS литерал-1
Формат 2 |
|
|
[ VALUE IS ] ( |
' / THROUGH ) I THRU 1 литерал-З |
|
I VALUES ARE [j литерал-2 |
|
|
(ЗНАЧЕНИЕ)( |
|
|
і ЗНАЧ ' і 1 литерал-2 [ПО литерал-З] [ . . . |
литерал-1
С и н т а к с и ч е с к и е правила
Для данного, шаблон которого определяет числовое данное со знаком, литерал, представляющий значение, должен иметь знак.
Все числовые литералы, приведенные во фразе VALUE' (ЗНАЧЕНИЕ), должны принадлежать диапазону значений, определяемых фразой PICTURE (ШАБЛОН), и не должны приводить к усечению значащих цифр. Размер нечисловых литералов не должен превышать размер данного, определяемый фразой PICTURE (ШАБЛОН).
Слова THROUGH и THRU эквивалентны. ЗНАЧ является сокращением слова ЗНАЧЕНИЕ.
Фраза VALUE (ЗНАЧЕНИЕ) не может быть употреблена ни в одной статье, являющейся частью описания или переопределе- ния внешней записи данных, за исключением статьи имени-усло-^ вия .
Общие правила
) Фраза VALUE (ЗНАЧЕНИЕ) не должна противоречить другим фразам в описании данного или фразам в описании данных внутри иерархии, которой принадлежит данное, описание которого содержит эту фразу. Применяются следующие правила:
если категория данного числовая, все литералы во фразе VALUE (ЗНАЧЕНИЕ) должны быть числовыми литералами. Если литерал определяет значение данного из рабочей памяти, этот литерал выравнивается согласно стандартным правилам выравнивания (см. ч. 4, п. 4.3.6);
если категория данного буквенная, буквенно-цифровая, буквенно-цифровая редактируемая или числовая редактируемая, то все литералы во фразе VALUE (ЗНАЧЕНИЕ) должны быть нечисловыми литералами. Литералы выравниваются как буквенно-цифровые данные (см. ч. 4, п. 4.3.6).
Литеры редактирования в строке литер шаблона учитываются при определении размера данного, но не влияют на установку начального значения данного (см. п. 5.9 настоящей части); поэтому значение редактируемого данного представляется в отредактированной форме;
присвоение начального значения выполняется независимо от наличия фразы BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) или JUSTIFIED (СДВИНУТО).
П р а в и л а для имен-условий
В статье имени условия фраза VALUE (ЗНАЧЕНИЕ) обязательна. Фраза VALUE (ЗНАЧЕНИЕ) и само имя-усло- вия являются единственными допустимыми фразами в такой статье.
Формат 2 может использоваться только в связи с именами условий (см. ч. 4, п. 4.2.2.1.1.1). При использовании фразы THRU (ПО) литерал-2 должен быть меньше, чем литерал-3.
Статьи описания данных, отличные от и м е н-у с л о в и й
Должны выполняться следующие правила.
Правила употребления фразы VALUE (ЗНАЧЕНИЕ) различны для соответствующих секций раздела данных:
в секции файлов на уровне 1 фраза VALUE (ЗНАЧЕНИЕ) не может использоваться. На уровне 2 она допустима только в | |статьях имен-условий, поэтому начальные значения данных секции файлов не определены;
фраза VALUE (ЗНАЧЕНИЕ) не может использоваться в
секции связи на уровне 1.
В секции связи она допустима только в статьях имен-условий;
в секции рабочей памяти и секции коммуникаций фраза VALUE (ЗНАЧЕНИЕ) должна использоваться в статьях имен- условий. фраза VALUE (ЗНАЧЕНИЕ) в секции рабочей памяти и секции коммуникаций оказывает свое действие только тогда, когда программа устанавливается в свое начальное состояние. Если фраза VALUE (ЗНАЧЕНИЕ) указана в описании данного, то ему присваивается указанное значение. Если фраза VALUE (ЗНАЧЕНИЕ) не указана, начальное значение данного не определено.
Фраза VALUE (ЗНАЧЕНИЕ) не должна входить в статью описания данного, которая содержит фразу REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ), или в статью, которая подчиняется статье, содержащей такую фразу. Это правило не применяется к статьям | (имен-условий.
Если фраза VALUE (ЗНАЧЕНИЕ) используется в статье на уровне группы, то литерал должен быть стандартной константой или нечисловым литералом. В этом случае области памяти для группы присваивается начальное значение без учета особенностей элементарных или групповых данных, содержащихся внутри этой группы; при этом фраза VALUE (ЗНАЧЕНИЕ) не может задаваться на подчиненных уровнях внутри этой же группы.
Фраза VALUE (ЗНАЧЕНИЕ) не должна задаваться для группы, содержащей данные, описания которых включают фразы JUSTIFIED (СДВИНУТО), SYNCHRONIZED (ВЫДЕЛЕНО) или фразы об использовании (кроме варианта USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ)).
Если фраза VALUE (ЗНАЧЕНИЕ) указана в статье описания данного, связанного с переменно повторяющимся данным, то инициация начального значения происходит так, как если бы значение данного, указанного в варианте DEPENDING ON (В ЗАВИСИМОСТИ ОТ) фразы OCCURS (ПОВТОРЯЕТСЯ) было равным максимальному числу вхождений. Переменно повторяющимися данными являются следующие:
групповое данное, содержащее переменно повторяющееся данное;
переменно повторяющееся данное;
данное, подчиненное переменно повторяющемуся данному.
Если фраза VALUE (ЗНАЧЕНИЕ) указана для данного, указанного в варианте DEPENDING ON (В ЗАВИСИМОСТИ ОТ), то это значение инициируется после инициации значений данного с переменным числом вхождений.
Если фраза VALUE (ЗНАЧЕНИЕ) формата 1 указана в статье описания данного, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ), или в статье, подчиненной статье с фразой OCCURS (ПОВТОРЯЕТСЯ), то каждому вхождению элемента данного будет присвоено указанное значение.
6. РАЗДЕЛ ПРОЦЕДУР В ЯДРЕ
Общее описание
Раздел процедур содержит процедуры, которые должна выполнять объектная программа (см. ч. 4, п. 6.4). Раздел процедур не обязателен в исходной Крбол-программе.Общие форматы раздела процедур ядра показаны ниже.
Формат 1
PROCEDURE DIVISION.
{имя-секции SECTION.
[имя-параграфа.
[предложение] . . . ] ...)...
РАЗДЕЛ ПРОЦЕДУР.
{СЕКЦИЯ имя-секции.
[имя-параграфа.
[предложение] . . . ] ...}.. .
Формат 2
PROCEDURE DIVISION.
{имя-параграфа.
[предложение] ...}...
РАЗДЕЛ ПРОЦЕДУР
{имя-параграфа, [предложение] ...}...
Арифметические выражения
Определение арифметического выражения
Арифметическим выражением может быть идентификатор числового элементарного данного; числовой литерал; стандартная константа ZERO (ZEROS, ZEROES) (НУЛЬ (НУЛИ)), а также идентификаторы, стандартные константы, литералы и выражения, разделенные знаками арифметических операций, либо арифметическое выражение, заключенное в скобки. Любому арифметическому выражению может предшествовать унарная операция. Допустимые комбинации переменных, числовых литералов, скобок и знаков арифметических операций приведены в п. 6.2.3 настоящей части. Все идентификаторы и литералы, встречающиеся в арифметическом выражении, должны представлять либо числовые элементарные данные, либо числовые литералы.
3 н а к и арифметических операций
Имеется пять знаков бинарных арифметических операций и два знака унарных арифметических операций, которые могут быть использованы в арифметических выражениях. Они изображаются специальными литерами, с обеих сторон которых должен стоять пробел. Ниже приведены знаки операций и их смысл.
Знак бинарной операции |
Смысл операции |
+ |
Сложение |
— |
Вычитание |
* |
Умножение |
/ |
Деление |
** |
Возведение в степень |
Знак унарной операции |
Смысл операции |
4- |
Соответствует умножению на числовой литерал 4-1 |
— |
Соответствует умножению на числовой литерал —1 |
Правила вычисления арифметических выражений
Арифметические выражения вычисляются по таким правилам:
для определения порядка выполнения указанных в арифметических выражениях действий могут применяться скобки. Выражения внутри скобок вычисляются первыми; внутри вложенных скобок вычисление происходит, начиная от самых внутренних скобок к внешним. Если скобки не используются или выражения, заключенные в скобки, находятся на одном и том же уровне вложенности, применяется следующий порядок старшинства выполнения операций: первая по старшинству операция — унарный плюс или минус; вторая — возведение в степень, третья — умножение или деление, четвертая — сложение или вычитание;
скобки используются в следующих случаях: для исключения логической неоднозначности, при появлении последовательных операций одного и того же иерархического уровня или для изменения последовательности выполнения операций, установленной порядком старшинства. Если последовательность выполнения не определена скобками, порядок выполнения последовательных операций одного и того же иерархического уровня определен слева направо;
ниже указаны способы, которыми идентификаторы, литералы, операции и скобки могут образовывать арифметическое выражение.