Программы-функции предназначены для того, чтобы можно было многократно выполнять некоторые фрагменты программы без повторения их записи. Особенно ценным может быть использование программ-функций, если они используются в многократно повторяющемся цикле.
Перед тем как использовать программу-функцию нужно ее задать, т.е. выполнить описания. Описание программы-функции размещается в рабочем документе перед вызовом программы-функции и включает в себя имя программы-функции, список формальных параметров (который может отсутствовать) и тело программы-функции. Рассмотрим эти понятия. Каждая программа-функция MathCAD имеет оригинальное имя, используя которое осуществляется обращение к этой программе-функции. Через это же имя (и только через это имя) “возвращается” в рабочий документ результат выполнения программы-функции. После имени программы-функции идет список формальных параметров, заключенный в круглые скобки. Через формальные параметры «внутрь» программы-функции “передаются” данные необходимые для выполнения вычислений внутри программы. В качестве формальных параметров могут использоваться имена простых переменных, массивов и функций. Формальные параметры отделяются друг от друга запятой.Программа-функция может не иметь формальных параметров, и тогда данные передаются через имена переменных, определенных выше описания программы-функции.
Тело программы-функции включает любое число операторов, локальных операторов присваивания, условных операторов и операторов цикла, а также вызов других программ-функций и функций пользователя.
Порядок описания программы-функции Mathcad. Для ввода в рабочий документ описания программы-функции необходимо выполнить следующие действия:
1. Ввести имя программы-функции и список формальных параметров, заключенный в круглые скобки ;
2. Ввести символ “:” - на экране отображается как “: =”;
3. Открыть наборную панель Программирования и щелкнуть кнопкой “Add line”. На экране появится вертикальная черта и вертикальный столбец с двумя полями ввода для ввода операторов, образующих тело программы-функции (см. рис. 3.1);
Рисунок 3.1- Структура программы-функции
4. Перейти в поле 1 (щелкнув на нем мышью или нажав клавишу [Tab] ) и ввести первый оператор тела программы-функции. Так как самое нижнее поле всегда предназначено для определения возвращаемого программой значения, то поля ввода для дополнительных операторов открываются с помощью щелчка на кнопке “Add line” панели программирования. При этом поле ввода добавляется внизу выделенного к этому моменту оператора. Для удаления того или иного оператора или поля ввода из тела программы-функции, нужно заключить его в выделяющую рамку и нажать клавишу [Delete] ( см. рис. 3.2);
Рисунок 3.2- Добавление операторов в тело программы-функции
5. Заполнить самое нижнее поле ввода ( поле 2 ), введя туда символ переменной, значение которой возвращается из программы-функции ( см. рис. 3.2 ).
В приведенном примере формальным параметром является простая переменная x , тело программы включает два локальных оператора присваивания (см. следующий пункт) и значение переменной z определяет возвращаемый через имя функции результат выполнения программы-функции.
Рисунок 3.3- Окончательный вид программы-функции.
Локальный оператор присваивания.Для задания внутри программы значения какой-либо переменной используется так называемый локальный оператор присваивания, имеющий вид:
< имя - переменной > ← < выражение >
Внимание ! Использование «обычного» оператора присваивания (обозначается : = ) в теле программы-функции приводит к синтаксической ошибке.
3.2. Обращение к программе-функции MathCAD
Для выполнения программы-функции необходимо обратиться к имени программы-функции с указанием списка фактических параметров (если в описании программы присутствует список формальных параметров), т.е.
< имя - программы > (список фактических параметров).
Фактические параметры указывают, при каких конкретных значениях осуществляются вычисления в теле программы. Фактические параметры отделяются друг от друга запятой. Очевидно, что между фактическими и формальными параметрами должно быть соответствие по количеству, порядку следования и типу. Последнее соответствие означает:
- если формальным параметром является простая переменная, то в качестве фактического параметра может использоваться константа, переменная, арифметическое выражение;
- если формальным параметром является вектор или матрица, то фактическим должен быть вектор или матрица;
- если формальным параметром является имя встроенной функции или другой программы, то и фактическим параметром должен являться тот же объект.
Обращение к программе-функции должно находиться после описания программы-функции и к моменту обращения фактические параметры должны быть определены.
Пример 3.1.Обращение к программе f(x), приведенной на рис. 2.4 может иметь следующий вид:
x := 2 f(x)=1.587 f(-3.23) = 0.556 + 0.928i
z := f(x + 4.5 ) z = 2.041
Заметим, что переменная z никак не связана с “локальной” переменной z, используемой внутри тела программы-функции. Передать данные внутрь программы-функции можно, используя внутри программы переменные, определенные до описания программы-функции.
Хотя значение переменной х изменилось внутри программы-функции, вне описания программы-функции эта переменная сохранила свое прежнее значение. Имена фактических параметров при вызове программы-функции могут не совпадать с именами ее формальных параметров.