Фактические параметры указывают, при каких конкретных значениях осуществляются вычисления в теле программы. Фактические параметры отделяются друг от друга запятой. При выполнении подпрограммы, его формальные параметры заменяются на фактические параметры основной программы.
Между фактическими и формальными параметрами должно быть соответствие по количеству, порядку следования и типу. Это означает следующее:
1)если формальным параметром является простая переменная, то в качестве фактического может использоваться константа, переменная, арифметическое выражение;
2)если формальным параметром является вектор или матрица, то фактическим должен быть вектор или матрица.
Имена фактических параметров при вызове подпрограммы могут либо совпадать, либо не совпадать с именами ее формальных параметров. Однако, для лучшего понимания процесса взаимодействия подпрограммы с основной программой, все же лучше использовать разные имена. Например, если 

– подпрограмма, а 

– вызов подпрограммы из основной программы, то
и
– формальные параметры, а и
–фактические параметры.
Примечание: Во избежание различных ошибок логического характера, рекомендуется использовать, разные имена для основной программы и подпрограмм, а также разные имена аргументов (формальных параметров).
Упражнение 1
Вычислить сумму: S = 1!+ 2!+,..., n!, n 1 , используя подпрограмму вычисления факториала числа.
Порядок выполнения:
1. Наберите подпрограмму для вычисления факториала, для этого запишите
и соответствующие операторы.
2.Наберите основную программу , для этого запишите 
и соответствующие операторы.
3.Проверьте работу программы при
, для этого наберите 
, затем обычный знак равенства =.
116
Блок – схема:
Начало
n
S:=0
-i,1,
S |
k: |
|
|
Конец |
P( |
|
|
|
S:=S |
Здесь, S– сумма, i – параметр цикла и фактический параметр, k – формальный параметр, P(k) – подпрограмма вычисления факториала, P– возвращаемый подпрограммой результат.
Вид документа Mathcad Prime:
Пояснение к программе: Здесь, – имя подпрограммы для вычисления
факториала и одновременно результат его работы; |
– |
имя основной |
|||||
программы и одновременно результат его |
работы; |
– |
|||||
соответствующие им формальные параметры; |
– параметр цикла для |
|
|||||
и . В основной программе, |
еще и выполняет роль фактического |
||||||
параметра, подставляемого |
вместо |
после |
каждого |
обращения |
к |
||
подпрограмме. До входа в циклы |
присваивается , а |
– |
. Обращение к |
||||
подпрограмме происходит |
– раз (PodProg1). |
|
|
|
|
||
117
|
|
Упражнение 2 |
|
|
|||
|
|
|
|
|
|
|
|
Найти значения функции |
z = |
ch( x2 −1) − ch( x +1) |
, где x |
меняется от 3 до |
|||
ch( x) |
|||||||
|
|
|
|
||||
4 с шагом 0,2. Вычисление гиперболического косинуса ch(k ) = ek + e−k
2
оформить в виде подпрограммы.
Порядок выполнения: |
|
1. Наберите |
:=1. |
2.Наберите подпрограмму
для вычисления гиперболического косинуса, для этого запишите 
и соответствующие
|
операторы. |
|
|
3. |
Наберите основную программу , для этого |
запишите |
и |
|
соответствующие операторы. |
|
|
4. |
Проверьте работу программы, для этого наберите |
, затем обычный |
|
|
знак равенства =. |
|
|
Вид документа Mathcad Prime:
Пояснение к программе: Здесь, – имя подпрограммы для вычисления факториала и одновременно результат его работы;
– имя основной
118
программы; |
– параметр цикла; |
– |
выполняет роль индексов для |
|||
векторов – столбцов |
и (массивов |
и ); |
– вектор - столбец, |
|||
состоящий из значения переменной |
; |
– вектор - столбец, состоящий из |
||||
значения переменной |
. До входа в цикл переменной присваивается |
|||||
начальное значение . В соответствии с условием задачи, в теле цикла |
, |
|||||
происходит формирование исходного векторов – столбцов |
и |
|||||
результирующего , а также изменение |
на . |
|
|
|||
Как видно из полученного результата, тело цикла повторяется – раз, а обращение к подпрограмме происходит - раз ( ), используя каждый
раз в качестве фактических по |
параметра, которые подставляются |
вместо формального параметра |
подпрограммы . |
Вывод полученных результатов записан в виде вектора - строки
из двух элементов, причем первый элемент представляет собой исходный вектор – столбец , второй результирующий вектор – столбец 
(PodProg2) .
Реализация рекурсивных алгоритмов в Mathcad Prime
До сих пор мы рассматривали случаи, когда основная программа обращается к подпрограмме, но существуют случаи, когда в теле программы (подпрограммы) происходит обращение к самой себе.
Рекурсия – это такой способ организации вычислительного процесса, при котором программа (подпрограмма) в ходе выполнения составляющих ее операторов обращается сама к себе.
Алгоритм называется рекурсивным, если он прямо или косвенно обращается к самому себе. Часто в основе такого алгоритма лежит рекурсивное определение какого-то понятия.
Например, вычисление факториала можно определить следующим
1, если n = 0
образом: n! =
n (n −1)!, если n 0
В Mathcad Prime, имеется возможность для реализации рекурсивных алгоритмов. Рассмотрим эту возможность на примере вычисления факториала рекурсивным методом.
119
Вид документа Mathcad Prime:
Пояснение к программе: Здесь,
– имя программы вычисления факториала; – результат вычисленного факториала; – формальный параметр программы ; 
– фактический параметр, который из тела основной программы подставляется вместо
, т.е. фактически происходит обращение программы к самой себе;
– фактический параметр для вычисления
(Rekursia)
Рекурсивный алгоритм обращается к самому себе, пока не выполнится определенное условие, поэтому в любой рекурсивной подпрограмме
должна быть нерекурсивная ветвь (в нашем примере это:
).
Рекурсию, в Mathcad Prime, можно организовать и не прибегнув к вкладке Программирование. Для этих целей используют оператор условного ветвления . Оператор
следует набирать вручную, на клавиатуре.
Вид документа Mathcad Prime:
Примечание: Следует, помнить, что рекурсивные определения подпрограмм далеко не всегда являются самыми эффективными в вычислительном отношении, несмотря на их краткость и элегантность. Часто оказывается, что определения, использующие операторы цикла, вычисляют нужные значения быстрее.
120