Лабораторная работа №4. Подпрограммы в MathCad
Цель работы: Ознакомление со способами вставки пользовательских функций в среде MathCad. Изучение способов написания подпрограмм.
Язык программирования Mathcad
Для вставки программного кода в документы в Mathcad имеется специальная панель инструментов Программирование (Programming), которую можно вызвать на экран нажатием кнопки Программирование на панели Математика (Math), как показано на рисунке. 4.1. Большинство кнопок этой панели выполнено в виде текстового представления операторов программирования, поэтому их смысл легко понятен.
Рисунок 4.1 – Панель программирования.
Назначение программных модулей заключается в определении выражений, переменных и функций в несколько строк, часто с применением специфических программных операторов.
Создание программы
Чтобы создать программный модуль:
- Введите часть выражения, которая будет находиться слева от знака присваивания и сам знак присваивания. Например имя функции f (х).
- При необходимости вызовите на экран панель инструментов Программирование (Programming).
- Нажмите на этой панели кнопку Добавить линию (Add Line).
- Если приблизительно известно, сколько строк кода будет содержать программа, можно создать нужное количество линий повторным нажатием кнопки Добавить линию (Add Line) соответствующее число раз (на рисунке 4.2 показан результат трехкратного нажатия).
- В появившиеся местозаполнители введите желаемый программный код, используя программные операторы. В рассматриваемом примере в каждый местозаполнитель вводится строка, например, "positive" (рисунок 4.3), затем нажимается кнопка Если (If) на панели Программирование (Programming) и в возникший местозаполнитель вводится выражение х>0 (рис. 4.4).
Рисунок 4.2. – Начало создания программного модуля.
Рисунок 4.3. – Вставка программного оператора.
Рисунок 4.4. – Вставка условия в программу.
- После того как программный модуль полностью определен и ни один местозаполнитель не остался пустым, функция может использоваться обычным образом, как в численных, так и в символьных расчетах.
Не вводите с клавиатуры имена программных операторов. Для их вставки можно применять лишь сочетания клавиш, которые приведены в тексте всплывающей подсказки.
Задание 4.1. Для ознакомления со способом вставки подпрограммы выполните листинг 4.1.
Листинг 4.1. Функция условия, определенная с помощью программы.
Вставить строку программного кода в уже созданную программу можно в любой момент с помощью той же самой кнопки Добавить линию (Add Line). Для этого следует предварительно поместить на нужное место внутри программного модуля линии ввода. Например, расположение линии ввода на строке, показанной на рисунке 4.5, приведет к появлению новой линии с местозаполнителем перед этой строкой. Если передвинуть вертикальную линию ввода из начала строки (как на рисунке 4.5) в ее конец, то новая линия появится после строки. Если выделить строку не целиком, а лишь некоторую ее часть (рисунок 4.6), то это повлияет на положение в программе новой строки кода (результат нажатия кнопки Add Line показан на рисунке 4.7).
Не забывайте, что для желаемого размещения линий ввода внутри формулы можно использовать не только мышь и клавиши со стрелками, но и пробел. С помощью последовательных нажатий пробела линии ввода "захватывают" разные части формулы.
Рисунок 4.5. – Вставка новой строки в существующую программу.
Рисунок 4.6. – Положение линий ввода влияет на положение новой линии.
Рисунок 4.7. – Результат вставки новой линии в программу (из положения рисунок 6).
Задание 4.2. Для ознакомления со способом редактирования подпрограммы выполните листинг 4.2.
Листинг 4.2. Функция условия, определенная с помощью программы.
В режиме выполнения программы, а это происходит при любой попытке вычислить f (х), выполняется последовательно каждая строка кода. Например, в предпоследней строке листинга 2 вычисляется f(1). Рассмотрим работу каждой строки кода этого листинга.
- Поскольку х=1, то условие х<0 не выполнено, и в первой строке ничего не происходит.
- Условие второй строки х>0 выполнено, поэтому выполняются обе следующие строки, объединенные короткой вертикальной чертой в общий фрагмент.
- Функции f(x) присваивается значение f(x) = "positive".
- Условие х>1000 не выполнено, поэтому значение "big positive" не присваивается f (х), она так и остается равной строке "positive".
- Последняя строка не выполняется, т. к. одно из условий (х>0) оказалось истинным, и оператор otherwise (т. е. "иначе") не понадобился.
Основной принцип создания программных модулей заключается в правильном расположении строк кода. Ориентироваться в их действии довольно легко, т. к. фрагменты кода одного уровня сгруппированы в программе с помощью вертикальных черт.
Локальное присваивание (<-)
Язык программирования Mathcad не был бы эффективным, если бы не позволял создавать внутри программных модулей локальные переменные, которые "не видны" извне, из других частей документа. Присваивание в пределах программ, в отличие от документов Mathcad, производится с помощью оператора Локальное присваивание (Local Definition), который вставляется нажатием кнопки с изображением стрелки <- на панели Программирование (Programming).
Ни оператор присваивания :=, ни оператор вывода = в пределах программ не применяются.
Локальное присваивание иллюстрируется листингом 4.3. Переменная z существует только внутри программы, выделенной вертикальной чертой. Из других мест документа получить ее значение невозможно.
Задание 4.3. Для ознакомления с применением локальных переменных выполните листинг 4.3.
Листинг 4.3. Локальное присваивание в программе.