Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
W-10_Fort_68_стр_10г..doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.18 Mб
Скачать

5.2. Оператор function

Определение подпрограммы - функции всегда начинается с оператора FUNCTION. За ним указывается имя функции, а затем - список аргументов в скобках. Перед ним может быть описатель типа REAL или INTEGER. Таким образом, общая форма оператора определения функции имеет вид: тип FUNCTION имя (список аргументов)

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

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

Информация, необходимая для вычисления значения функции, передается из вызывающей программной единицы через аргумент функции. Тип аргументов и их количество зависят от назначения функции. В качестве аргументов функции чаще всего используются простые вещественные и целые переменные. Аргументы отделяются друг от друга запятыми. Весь список аргументов заключается в скобки. Скобки обязательно должны быть, даже если аргументов нет. Теперь рассмотрим примеры операторов FUNCTION F(X) Этот оператор определяет функцию с именем F, вычисляющую вещественное значение. Она имеет один вещественный аргумент, обозначенный в определении функции буквой X. Оператор REAL FUNCTION LONG(А, В) определяет функцию с именем LONG, которая вычисляет вещественное значение и имеет два аргумента вещественных, обозначенных буквами А и В. Если бы не был указан тип функции REAL, то функция LONG в соответствии с соглашением о типах вычисляла бы целое значение. При использовании этой функции необходимо в вызывающей программной единице объявить имя - LONG вещественным при помощи оператора REAL.

Оператор INTEGER FUNCTION COUNT (I, J, Y) определяет функцию с именем COUNT, которая выдает целое значение и имеет два целых аргумента I и J и один вещественный аргумент Y.

Оператор FUNCSION NCHEK ( ) определяет функцию с именем NCHEK, которая выдает целое значение и не имеет аргументов, однако скобки в записи оператора опустить нельзя.

5.3 Другие операторы, входящие в подпрограммную–функцию

Подпрограммная - функция всегда начинается с оператора FUNCTION и должна заканчиваться оператором END. Между ними размещаются операторы, выполняющие вычисления. Они могут использовать имена переменных из списка аргументов, а также имена переменных, являющихся локальными переменными для данной функции-подпрограммы. Локальные переменные используются только внутри подпрограммы и не имеют никакого отношения к другим переменным из главной программы или из других подпрограмм, даже если последние имеют такие же имена.

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

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

RETURN, стоящий перед оператором END, можно опускать.

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

FUNCTION BIG (А, В)

BIG = A

IF (B.GT.A) BIG=B

END

Здесь следует отметить чрезвычайно важное обстоятельство: для аргументов подпрограммы - функции А и В в памяти используются только для того, чтобы указать вызывающей программной единице те точки в подпрограмме, в которые следует передать информацию, необходимую для вычислении. Имена аргументов, указанные в определении функции, называются формальными параметрами. Значения аргументов, передаваемые подпрограмме – функции, при ее вызове, называются фактическими параметрами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]