Cтраница 2
Все идентификаторы, встречающиеся в программе, за исключением меток, формальных параметров и идентификаторов стандартных функций, должны быть описаны в блоках. [16]
Если формальным параметром подпрограммы-функции является идентификатор подпрограммы-функции или подпрограммы, а в качестве соответствующего фактического параметра выступает идентификатор внешней стандартной функции, подпрограммы-функции или подпрограммы, то замена формального параметра производится по наименованию, а идентификатор такого фактического параметра должен быть указан в списке идентификаторов оператора внешних подпрограмм в вызывающей программной единице. [17]
Формальные параметры описываются в заголовках процедур ( см. стр. Идентификаторы стандартных функций используются без описаний функций. [18]
Стандартные функции используются в выражениях в качестве операндов как обычные переменные. Не разрешается только употребление идентификаторов стандартных функций в левой части оператора присваивания. [19]
Формальному параметру, являющемуся идентификатором массива, соответствует фактический параметр в виде элемента массива или идентификатора массива. Если формальным параметром подпрограммы-функ -, ции является идентификатор подпрограммы-функции, то фактическим параметром может быть идентификатор стандартной функции или идентификатор подпрограммы-функции. Формальному параметру, являющемуся идентификатором подпрограммы, соответствует в качестве фактического параметра идентификатор подпрограммы. [20]
При вызове по наименованию класс и тип фактического параметра должны совпадать с классом и типом соответствующего формального параметра. Однако если при выполнении процедуры не происходит присваивания значения этому параметру, то фактический параметр типа integer может соответствовать формальному параметру типа real. Идентификаторы стандартных функций не могут быть фактическими параметрами процедур. [21]
При вызове по наименованию класс и тип фактического параметра должны совпадать с классом и типом соответствующего формального параметра. Однако если при выполнении процедуры не происходит присваивания значения этому параметру, то фактический параметр типа, integer может соответствовать формальному параметру типа real. Идентификаторы стандартных функций не могут быть фактическими параметрами процедур. [22]
Заметим, что идентификаторы стандартных функций не требуют описания длины. Все приведенные в 11.5.5 функции используют в качестве аргументов действительные объекты стандартной длины и таким же получается результат вычислений. Для того чтобы использовать аргументы с удвоенной точностью представления, перед идентификатором стандартной функции должна быть записана буква D. В этом случае и результат вычисления будет получен с удвоенной точностью. Например, функция SQRT ( X) вычисляет значение квадратного корня из величины представленной с обычной точностью, а результат вычисления функции DSQRT ( X) для величины X, заданной с удвоенной точностью, также будет удвоенной точности. [23]
Здесь Е означает произвольное арифметическое выражение. Аргументом функции служит значение этого арифметического выражения, вычисляемое непосредственно перед обращением к определяемой функции. На значения Е накладываются ограничения, вытекающие из особенностей конкретной функции. Например, для функций sqrt ( E) и In ( Е) значение Е не должно быть отрицательным. При написании идентификаторы стандартных функций не подчеркиваются. [24]