Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык программирования Фортран.doc
Скачиваний:
109
Добавлен:
02.05.2014
Размер:
228.35 Кб
Скачать

4.3.3. Функции-операторы.

Функция-оператор определена единственным оператором и по виду подобна оператору присваивания. Функция-оператор может появиться только после операторов описания и перед любыми выполняемыми операторами в программной единице.

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

4.4. Параметры.

Формальный параметр - это имя, с помощью которого параметр передается функции или подпрограмме; фактический параметр - это указанная переменная, выражение, массив и т.д., передаваемый процедуре при конкретном ее вызове. Взаимодействие между формальными и фактическими параметрами в функции или подпрограмме детально раскрывается ниже.

Параметры передают величины и берут их из процедуры ссылочным образом. Число действительных параметров должно совпадать с числом формальных параметров и при этом их типы должны быть согласованы.

На входе в подпрограмму или функцию фактические параметры связываются с формальными, во многом подобно тому, как оператор EQUIVALENCE связывает два или более массива или переменные, а оператор COMMON в двух или нескольких программных единицах связывает списки переменных. Эта связь действует, пока не закончилось выполнение подпрограммы или функции. Поэтому присвоение величины формальному параметру во время выполнения подпрограммы или функции может изменить величину соответствующего фактического параметра.

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

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

Формальный параметр, описанный как переменная, может быть связан с фактическим параметром - переменной, элементом массива, выражением. Формальный параметр, описанный как переменный возврат (*) может быть связан с определителем переменного возврата (*n) в операторе CALL и является повторяемым.

Формальный параметр, описанный как массив, может быть связан с фактическим параметром, являющимся массивом или элементом массива. Число и размер размерностей формального параметра могут быть отличны от этих характеристик фактического параметра, но любая ссылка на формальный массив должна быть в пределах памяти, отведенной под фактический массив. Когда ссылка на элемент выходит за границы, это не фиксируется как ошибка при исполнение программы на МС-Фортране и результат непредсказуем.

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

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

Список используемой литературы

  1. Белецки, Ян. Фортран 77. – М.: Высшая школа, 1991. – 207 с.: ил.

  2. Алексеев В.Е., Ваулин А.С. Языки программирования: ФОРТРАН IV, ПЛ/1. – М.: Высшая школа, 1987. – 159 с.: ил.

27