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

5.4. Обращение к подпрограмме – функции

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

PROGRAM CHIS

* ПРОГРАММА, ИСПОЛЬЗУЮЩАЯ ФУНКЦИЮ BIG

READ (5, *) А, В, С, D

Х = BIG (А, В)

Y = BIG (С, D)

Z = BIG (X, Y)

PRINT *, ’ ВВЕДЕНЫ ЧЕТЫРЕ ЧИСЛА’, А, В, С, D

PRINT *, ’ НАИБОЛЬШЕЕ ИЗ НИХ Z= ', Z

END

* ОПРЕДЕЛЕНИЕ ФУНКЦИИ BIG

FUNCTION BIG (A, B)

BIG=A

IF (В. GT. A) BIG =В

END

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

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

После того, как значения формальных параметров стали определенны, далее операторами подпрограммы вычисляется требуемое значение. Это значение присваивается имени BIG, которое затем "подставляется" вместо имени BIG и фактических аргументов в оператор главной программы, который вызвал подпрограмму - функцию BIG. На этом связь между фактическими и формальными параметрами заканчивается. Единственное, что требовалось подпрограмме - функции BIG от фактического параметра - это его вещественное значение. Кроме соответствия типов формальных и фактических параметров, программист должен следить за тем, чтобы число фактических параметров равнялось числу формальных параметров. Поэтому в операторе Q = BIG(3, ХО+BIG(X, Y, Z)) оба вызова функции BIG недопустимы. Первый вызов недопустим потому, что первый аргумент целый, а второй из-за того, что число фактических аргументов равно трем.

Однако в операторе R = BIG(2.8, 3.5) + BIG(A*В, SQRT(С)) + BIG(X(I, J), Y(2)) все три вызова допустимы. Здесь следует обратить внимание на то, что в качестве фактических параметров используются элементы вещественных массивов и арифметические выражения, т.е. фактическим параметром подпрограммы может быть любая конструкция Фортрана, сводящаяся к одному значению.

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