Глава 9. Символьные вычисления
После имени процедуры через оператор присваивания указывается ключевое слово proc, после которого в круглых скобках перечисляются аргументы процедуры. Если в процедуре используются локальные переменные, они перечисляются после ключевого слова local. Эта часть кода не является обязательной. Тело кода процедуры размещается между ключевыми словами begin и end_proc.
На заметку
Переменные могут быть локальными и глобальными. Локальные переменные доступны только в пределах кода процедуры в том смысле, что любые изменения, вносимые в такие переменные в теле процедуры, отменяются после выполнения процедуры. По умолчанию все переменные (не объявленные в разделе local) полагаются глобальными. При совпадении имен глобальной и локальной переменных приоритет остается за локальной переменной.
Если процедура возвращает результат, то для этого обычно используют инструкцию return(). Аргументом указывается возвращаемое значение. Но в принципе можно обойтись и без этой инструкции. В этом случае возвращается последнее вычисленное значение в процедуре. Пример процедуры для вычисления чисел Фибоначчи приведен ниже:
FibNums:=proc(n) local i,a,b; begin
a:=1:
b:=1:
for i from 3 to n do b:=a+b:
a:=b-a: end_for: return(b); end_proc:
Использование этой процедуры в рабочем документе MuPAD показано на рис. 9.44.
Еще один пример процедуры (тоже для вычисления чисел Фибоначчи) показан в документе на рис. 9.45.
В этом случае использована рекурсия – вызов процедуры в теле этой же процедуры. Код процедуры следующий:
FNums:=proc(n) begin
if n=1 or n=2 then return(1):
else return(FNums(n-1)+FNums(n-2)): end_if:
end_proc