Составители:
Рубрика:
PRINT *, 'Функция Rnd10: ', RND10()
Z = RND10() - 2
PRINT *, 'Z= ', Z
END
FUNCTION RND10()
CALL RANDOM_NUMBER(RND)
RND10 = 10 * RND
END
REAL FUNCTION TEST (N, K)
TEST = N + K
END FUNCTION
Результаты работы:
Функция Test: 3.
X= 7. Y= 34.
Функция Rnd10: 9.839003
Z= 4.999507
1.5. Подробнее о параметрах
Передача по ссылке и по значению
Фраза «формальные параметры заменяются на значения соответ-
ствующих фактических» не совсем точна. На самом деле существует
два принципиально различных варианта передачи параметров.
Первый – это передача по значению (by value). При этом спо-
собе значение фактического параметра копируется в новую пере-
менную, далее все действия выполняются над копией. Соответст-
венно даже если формальный параметр внутри подпрограммы ме-
няется, после выхода из подпрограммы значение фактического
параметра не изменится. Так, например, происходит вызов функ-
ции в языке С.
Второй способ – это передача параметров по ссылке (by
reference). При этом способе фактический параметр непосредст-
венно подставляется вместо формального, и все изменения в па-
раметрах остаются после выхода из подпрограммы. Так проис-
ходит вызов в языках QBasic и Fortran.
13
PRINT *, 'Функция Rnd10: ', RND10() Z = RND10() - 2 PRINT *, 'Z= ', Z END FUNCTION RND10() CALL RANDOM_NUMBER(RND) RND10 = 10 * RND END REAL FUNCTION TEST (N, K) TEST = N + K END FUNCTION Результаты работы: Функция Test: 3. X= 7. Y= 34. Функция Rnd10: 9.839003 Z= 4.999507 1.5. Подробнее о параметрах Передача по ссылке и по значению Фраза «формальные параметры заменяются на значения соответ- ствующих фактических» не совсем точна. На самом деле существует два принципиально различных варианта передачи параметров. Первый – это передача по значению (by value). При этом спо- собе значение фактического параметра копируется в новую пере- менную, далее все действия выполняются над копией. Соответст- венно даже если формальный параметр внутри подпрограммы ме- няется, после выхода из подпрограммы значение фактического параметра не изменится. Так, например, происходит вызов функ- ции в языке С. Второй способ – это передача параметров по ссылке (by reference). При этом способе фактический параметр непосредст- венно подставляется вместо формального, и все изменения в па- раметрах остаются после выхода из подпрограммы. Так проис- ходит вызов в языках QBasic и Fortran. 13
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »