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

Число символов, порождаемых преобразованием при выводе, не должно превышать ширины поля.

  1. Преобразование данных типа целый. Описатель чис­лового поля Iw указывает, что внешнее поле — это целое число, занимающее w позиций. Значение элемента списка является или (после ввода) должно являться во внутреннем представлении данным типа целый.

Во внешнем поле ввода последовательность символов должна представлять целое число без знака или со знаком (п. 5.1.1.1), с учетом трактовки пробелов (п. 7.2.3.6).

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

7.2.3.5.1, 7.2.3.6, 7.2.3.6.1. (Измененная редакция, Изм. № 1).

  1. Преобразование данных типа вещественный. Имеют­ся три преобразования, применимые к данным типа веществен­ный: F, Е, G.

    1. Описатель числового поля Fw.d указывает, что внешнее поле занимает w позиций, а дробная часть состоит из d цифр. Значение элемента списка является или (после ввода) дол­жно являться во внутреннем представлении данным типа вещест­венный.

Основная форма внешнего поля ввода состоит из последова­тельности цифр, возможно, содержащей точку, а этой последова­тельности может предшествовать знак. За основной формой может следовать экспонента в одной из следующих форм:

целое число со знаком;

Е, за которой следует целое число без знака или со знаком;

D, за которой следует целое число без знака или со знаком.

Экспонента, содержащая D, эквивалентна экспоненте, содер­жащей Е.

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

  1. Описатель числового поля Ew.d указывает, что внешнее поле занимает w позиций, а дробная часть состоит из d цифр. Значение элемента списка является или (после ввода) долж­но являться во внутреннем представлении данным типа веществен­ный.

Форма внешнего поля ввода такая же, что и для преобразова­ния F.

Стандартная форма внешнего поля вывода для масштабного множителя, равного нулю, имеет вид

gO.X|...xdY

(£ — отсутствие символа, либо знак минус в этой позиции;

X]...xd — старшие d десятичных цифр округленного выводи­мого значения данного;

Y — десятичная экспонента;

цифра 0 в приведенной выше стандартной форме может быть опущена).

Y имеет вид

Е± у,у2 или

±У1У2Уз

(каждое у, — цифра).

Вместо знака плюс в первом из этих видов может стоять про­бел.

Масштабный множитель п управляет десятичной нормализа­цией между смешанной дробью £0.xi...xd и экспонентой следую­щим образом (см. также п. 7.2.3.5.1).

Если п^О, то будет ровно —п ведущих нулей и d-|-n знача­щих цифр после точки.



Если п>0, то будет ровно п значащих цифр слева от точ- кии d—п + 1 цифр справа от точки.

7.2.3.6.2.3. Описатель числового поля G w.d указывает, что внешнее поле занимает w позиций с d значащими цифрами. Зна­чение элемента списка является или (после ввода) должно яв­ляться во внутреннем представлении данным типа вещественный.

Метод представления внешней последовательности символов при выводе зависит от величины вещественного данного, подвергае­мого преобразованию. Пусть N — величина внутреннего данного. Соответствие между N и эквивалентным применяемым методом преобразования задается следующим образом:

Величина данного Преобразование

0.1<N<l F(w—4).d,4X

l<N<10 F(w—4).(d— 1),4X

10d~2<


10d~'<N


10<b 1 10d


F(w—4).1,4X

F(w—4).0,4X



В остальных случаях sEw.d.

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

  1. 1—7.2.3.6.2.3 (Измененная редакция, Изм. № 1).

  1. Преобразование данных типа двойной точности. Опи­сатель числового поля Dw.d указывает, что внешнее поле занима­ет w позиций, а дробная часть состоит из d цифр. Значение эле­мента списка является или (после ввода) должно являться во внутреннем представлении данным типа двойной точности.

Основная форма внешнего поля ввода та же самая, что и для преобразования данных типа вещественный.

Внешнее поле вывода такое же, что и для преобразования Е, за исключением того, что символ Е в экспоненте может заменять­ся символом D.

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

  1. Преобразование данных типа логический. Описатель логического поля Lw указывает, что внешнее поле занимает w позиций как последовательность символов, вид которой определен ниже. Элемент списка является или (после ввода) должен яв­ляться во внутреннем представлении данным типа логический.

Внешнее поле ввода должно состоять из, возможно, пробелов, за которыми следует символ Т либо символ F, за которым, возмож­но, следуют остальные символы, изображающие значения «истина» (True) или «ложь» (False) соответственно.

Внешнее поле вывода состоит из w—1 пробела, за которым сле­дует символ Т или символ F, если значение внутреннего данного есть соответственно «истина» или «ложь».

  1. Описатель текстового поля. Текстовая информация мо­жет передаваться посредством двух описателей полей: пН или Aw.

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

Описатель Aw указывает, что при вводе прочитываются w сим­волов и передаются в элемент, определяемый списком ввода/выво- да, а при выводе из этого элемента выбираются w символов.

Пусть g — число символов, которые могут быть размещены в од­ной единице памяти. Если ширина поля w больше либо равна g, то при вводе из внешнего поля будут взяты самые правые g сим­волов. Если ширина поля w меньше g, то при вводе во внутреннем представлении будет w символов, сдвинутых влево, за которыми будет следовать g—w пробелов.

Если ширина поля w больше g, то при выводе внешнее поле будет состоять из w—g пробелов, за которыми следуют g символов из внутреннего представления. Если ширина поля w меньше ли­бо равна g, то при выводе внешнее поле будет состоять из w са­мых левых символов из внутреннего представления.

  1. Описатель поля пробелов. Описатель поля пробелов есть пХ. При вводе пропускаются п символов из внешней вводимой записи, а при выводе во внешнюю выводимую запись вставляет­ся п пробелов.

7.2.3.7—7.2.3.9. (Измененная редакция, Изм. № 1).

  1. Спецификация формата в массивах. Любой оператор форматного ввода/вывода может содержать имя массива в том месте, которое отведено для указания метки объявления формата. В тот момент, когда на этот массив производится ссылка из опе­ратора ввода/вывода, начальная часть информации, содержащей­ся в этом массиве, взятая в естественном порядке, должна обра­зовывать правильную спецификацию формата. На информацию, содержащуюся в массиве и следующую за правой скобкой, ограни­чивающей спецификацию формата, не накладывается никаких ог­раничений.

Спецификация формата, размещаемая в массиве, имеет тот же вид, который был определен для объявления формата, т. е. она начинается с левой скобки и заканчивается правой скобкой. В массиве описатель поля пН не может быть частью специфика­ции формата. Спецификация формата может быть помещена в массив с помощью объявления начальных данных, а также с по­мощью оператора ввода с форматом, содержащим описатель поля типа А.

  1. ПРОЦЕДУРЫ И МОДУЛИ

Имеются четыре категории процедур: внутренние функции, встроенные функции, внешние функции и внешние подпрограммы. Первые три категории процедур относятся к функциям (или про­цедурам-функциям), а последняя категория — к подпрограммам (или процедурам-подпрограммам). Имеются две категории моду­лей: модули-процедуры и модули-спецификации; к первой из них относятся модули-функции и модули-подпрограммы, а ко второй — модули-блоки данных. Правила типа для процедур-функций указаны в п. 5.3.

  1. Внутренние функции. Внутренняя функция определяется в том же самом программном модуле, в котором имеются ссыл­ки на эту функцию. Такая функция определяется при помощи объявления внутренней функции.

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

  1. Структура объявлений внутренних функций. Внутренняя функция определяется при помощи объявления внутренней функ­ции, которое имеет вид

f(а,, а2,...,ап) =е

(f — символическое имя определяемой функции;

е — выражение;

каждое а, — символическое имя, называемое формальным па­раметром).

Соответствие между f и е должно удовлетворять правилам присваивания из пп. 7.1.1.1—7.1.1.2.

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

Выражение е, кроме формальных параметров, может содер­жать только:

нетекстовые константы;

указатели переменных

;



указатели встроенных функций;

указатели внутренних функций, определенных ранее в данном программном модуле;

указатели внешних функций.

  1. Ссылки на внутренние функции. Для ссылки на внут­реннюю функцию используется ее указатель (п. 5.2.) в качестве первичного выражения в арифметическом или логическом выра­жении. Фактические параметры, образующие список фактических параметров в указателе функции, должны согласовываться по по­рядку, числу и типу с соответствующими формальными парамет-

Таблица 3

Встроенная функция

Определение

Число пара­метров

Сим воличе- кое имя

Тип

парамет­ров

функции

Абсолютное значение

|а|

1

ABS

Вещ.

Вещ.

IABS

Цел.

Цел.

DABS

Дв.

Дв.

Усечение*

sign (а) умножа­ется на [1 а| ]

1

AINT

Вещ.

Вещ.

INT

Вещ.

Цел.

IDINT

Дв.

Цел.

Взятие остатка**

a, (mod а2)

2

AMOD

Вещ.

Вещ.

MOD

Цел.

Цел.

Выбор наиболь­шего значения

max (а,, а2...)

>2

АМАХО

Цел.

Вещ.

АМАХ1

Вещ.

Вещ.

МАХО

Цел.

Цел.

МАХ1

Вещ.

Цел.

DMAX1

Дв.

Дв.

Выбор наимень­шего значения

min ( а,, а2...)

>2

AMINO

Цел.

Вещ.

AMINI

Вещ.

Вещ.

MINO

Цел.

Цел.

MINI

Вещ.

Цел.

DMIN1

Дв.

Дв.

Преобразование в плавающую форму

Преобразование от це­лого к вещественному

1

FLOAT

Цел.

Вещ.

Преобразование в фиксированную форму

Преобразование от ве­щественного к целому

1

[FIX

Вещ.

Цел.

Продолжение табл. 3

Встроенная функция

Определение

Число пара­метров

Символиче­ское имя

Тип

парамет­ров

функции

Передача знака

sign (а2) умножается на |at 1

2

SIGN

Вещ.

Вещ.

ISIGN

Цел.

Цел.

DSIGN

Дв.

Дв.

Положительная разность

а,—min (а,, а2)

2

DIM IDIM

Вещ.

Цел.

Вещ.

Цел.

Получение мак­симальной знача­щей части аргу­мента двойной точ­ности


1

SNGL

Дв.

Вещ.

Получение ве­щественной части комплексного ар­гумента


1

REAL

Ком пл.

Вещ.

Получение мни­мой части комп­лексного аргумен­та


1

AIMAG

Ком пл.

Вещ.

Преобразование вещественного ар­гумента в форму двойной точности


1

DBLE

Вещ.

Дв.

Преобразование двух веществен­ных аргументов в комплексную фор­му

ai +a2V—1

2

CMPLX

Вещ.

Компл.

Получение ком­плексной величи­ны, сопряженной с аргументом


1

CONJG

Ком пл.

Компл.