|
Объявления переменных локальными с помощью оператора local
Если в теле процедуры имеются операции
присваивания для ранее определенных (глобальных) переменных, то изменение их
значений в ходе выполнения процедуры создает так называемый побочный эффект.
Он способен существенно изменить алгоритм решения сложных задач и, как правило,
недопустим. Поэтому Maple-язык программирования имеет встроенные средства для
исключения побочных эффектов. Встречая такие операции присваивания, Maple-язык
корректирует текст процедуры и вставляет в нее объявление переменных локальными
с помощью ключевого слова local и выдает предупреждающую
надпись о подобном применении:
>
restart:m:=0;
m
:= 0
> modc:=proc(z)
> m:=evalf(sqrt(Re(zr2+Im(zr2)):RETURN(m)
> end:
Warning, 'm' is implicitly declared local to procedure 'mode'
mode := proc (z) local т; т := evalf(sqrt(9*(z)A2 + 3(z)A2)); RETURN(m) end
proc
> modc(3.+I*4.): 5.000000000
> m;
0
Обратите внимание на то, что в тело
процедуры было автоматически вставлено определение local m,
задающее локальный статус переменной т. Оператором print
можно вывести текст процедуры:
>
print(modc);
proc(z)
local m; m := evalf(sqrt(R(z)^2 + J(z)^2)); RETURN(m) endproc
|