Описание программы-функции
Перед тем как использовать программу-функцию нужно выполнить её описание. Описание программы-функции размещается в рабочем документе перед вызовом программы-функции и включает в себя заголовок функции и тело функции, соединенные в единое целое с помощью операции присваивания (опреатор «:=»).
Если программа используется для вычисления одного значения, то в своем заголовке она не содержит списка формальных параметров и называется программой-скаляром.
Программа-функция может не иметь формальных параметров также в тех случаях, когда данные передаются через имена переменных, определенных выше описания программы-функции. Эти переменные будут являться глобальными для данной функции.
Технология создания программы-функции в рабочем документе MathCAD состоит из следующих шагов.
Ввести заголовок функции.
Ввести знак присваивания «: =».
Выполнить команду Add line, расположенную на панели Programming математической панели инструментов MathCAD. Появившейся на экране шаблон с вертикальной чертой и полями для ввода операторов будут составлять заготовку для тела программыфункции.
Вписать операторы в шаблон-заготовку. Тело программыфункции может включать любое число операторов: локальных операторов присваивания, условных операторов и операторов цикла, а также вызов других программ-функций. Самое нижнее поле всегда предназначено для определения возвращаемого программой значения.
Пример 5.1. Требуется подготовить описание функции
y= sin(x2 -z2), вычислить значения этой функции
при х = 25,2 и z =3,3.
Решение. Для нахождения значения функции «внутрь» программы-функции следует передать значения х и z, необходимые для выполнения вычислений внутри программы. Поэтому переменные х и z следует включить в список формальных параметров заголовка создаваемой функции. Пусть наименование создаваемой функции будет Y. Тогда подготовка описания функции, и ее выполнение в соответствии с описанной технологией могут быть выполнены различными способами. На рис. 5.3 представлены решения поставленной задачи.
В данном примере в первой части a) для вычисления значения y= sin(x2 -z2) используется базовый набор средств без элементов программирования. Во второй b) и третьей c) частях производятся такие же вычисления, но с использованием элементов программирования. Обе программы b) и с) можно считать эквивалентными, так как возвращают они одно и то же значение, которое располагается в последней строчке программируемой части. В b) и с) представлена программа-скаляр, так как они используются для вычисления одного значения и не имеют формальных параметров.
а) b) c)
Рис. 5.3. Демонстрация элементов программирования простых выражений в MathCAD
Внутри программ (b и с) используются глобальные переменные x и z. Значения этих переменных определены заранее. Обе программы из примера, представленного на рис. 5.3, в своей программируемой части содержат операторы присваивания с использованием локальных переменных. Переменные, созданные внутри программы с таким видом присваивания, являются внутренними, и доступ к ним может осуществляться только в самой программе.
Для реализации программ в MathCAD следует учитывать следующее.
В программной части используются глобальные переменные обычно только как операнды в выражениях.
Присвоить глобальным переменным значения внутри программы можно только локальным образом. После выхода из программы эти переменные сохраняют свои «глобальные» значения.
Использование оператора присваивания «:=» в теле программы-функции приводит к синтаксической ошибке.
Последняя строка программы не должна содержать управляющих операторов. Данная строка задает значение, возвращаемое программой, т.е. получает результат вычислений и может содержать выражение, вычисляющее результат (рис. 5.3, b) или имя локальной переменной результата (рис. 5.3, с).
Обычно программа содержит больше чем две строки, поэтому рекомендуется сразу задавать блок из 5-6 маркеров, используя кнопку Add line панели программирования.
Для удаления того или иного оператора или поля ввода из тела программы-функции, нужно его выделить и нажать клавишу <Delete>.
Программный блок можно создать и внутри уже заданного блока (вложенный блок). Для этого следует использовать один из стандартных способов: поставить курсор в маркер соответствующего оператора программирования и выполнить Add line.
Положение вставляемого маркера определяется положением вертикальной черты курсора. Если она находится слева от выделенного выражения, то маркер будет добавлен выше выделенной строки, если справа – то ниже.
Чтобы развернуть курсор в нужную сторону, нажмите клавишу <Insert>.
Чтобы добавить строку к целому блоку, его следует выделить, дважды нажав клавишу <Пробел>.
В том случае, если программа содержит блоки различных уровней, то для добавления строки, например, к первому блоку, нажмите клавишу <Пробел> несколько раз: при каждом нажатии будут выделяться блоки более низкого уровня.
