![]() |
![]() |
||
![]() |
14.1. Побочные эффекты1. Если в теле процедуры (функции) перевычисляется некоторая нелокальная переменная, т. е. такая переменная, которая описана в других модулях, содержащих данный, то могут наблюдаться непредвиденные последствия. Пример. Пусть функция F (X) имеет такой вид: ![]() т. e. в процессе работы функция F изменяет некоторую нелокальную величину V. Рассмотрим теперь два выражения, которые вычисляются в программе, содержащей F(X): ![]() Эти выражения дадут разные результаты, так как в первом случае к F(X) прибавится уже измененное значение V (в процессе работы F), а во втором случае к первоначальному значению V добавляется F(X). 2. Вторая опасность заключается в неправильном использовании параметров-переменных в качестве формальных параметров. Пример. Найти 5-й член последовательности ![]() Опасно оформлять функцию в виде ![]() Так, если обратиться к этой функции оператором В: = F(1,5), будет "испорчена" константа 1, так как в ячейку памяти (первый фактический параметр), содержавшую ранее единицу, функция F поместит текущий; член последовательности, и при дальнейшей работе программы вместо 1 будет использоваться значение а5. Такие ошибки бывает трудно найти, поэтому полезно придерживаться следующего правила: в функциях не использовать параметры-переменные.
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
![]() |
|||
© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна: http://informaticslib.ru/ 'Библиотека по информатике' |