Лабораторная работа № 2
Приложение D

Программирование в MATHCAD
Для повышения гибкости Mathcad в системе предусмотрена возможность написания небольших программ для решения тех проблем, которые не могут быть реализованы стандартными средствами. Обычно прибегать к программированию приходится в тех случаях, когда стандартные средства либо не могут решить задачу, либо неэффективны.
Для написания программ используется программная палитра, которая вызывается кнопкой панели управления. Как видно, всего имеется 10 операторов, из которых и строится программа. Причём операторы должны вводиться только из палитры, писать их "вручную" не рекомендуется.
Для примера приведём простую программу возвращающую 1, если число чётное, и 0 в противном случае.
Начинаем создание программы с кнопки Add Line.
Вертикальная линия играет роль операторных скобок.
Функция
возвращает остаток от деления на 2, например:
После того, как функция определена, она может использоваться наравне со встроенными функциями.
Более сложный пример определения максимальной координаты вектора и её позиции.
Присваивание начальных значений переменным.
Цикл по элементам вектора (элементы вектора отсчитываются от 0).
возвращает последний индекс массива.
Присваивание большего значения и сохранение его координаты. Операторную скобку создаём кнопкой Add Line.
Возвращаемые значения.
Действительно, максимальное значение равно 8 и имеет индекс 2.
Определим теперь вектор:
Рассмотрим в качестве ещё одного примера вопрос, как программным способом построить скалярное произведение.
Вычислим квадрат модуля вектора
.
Оператор return здесь может быть опущен.
В качестве возвращаемого значения в программе используется результат последней операции.
Обратите внимание, что программах мы не пользуемся оператором присваивания :=, а вводим оператор локального присваивания
.
Переменные, определённые в программе, теряют значение при выходе из неё.
Разберём ещё несколько примеров работы с массивами данных (матрицами).
Задача 1. Составим программу которая будет менять местами 2 строки матрицы. Например, в матрице М нужно поменять местами строки 1 и 2.
здесь функция
возвращает количество столбцов матрицы.
тогда
Задача 2. Рассмотрим программу упорядочения чисел по убыванию в одномерном массиве. Пусть дан массив чисел:
Мы воспользуемся вложенными циклами и в качестве тела цикла по i используем ещё один цикл по j.
Здесь реализован простейший алгоритм сортировки, так называемый "метод пузырька". На самом деле, большие числа как бы всплывают наверх при каждом шаге цикла по i, в то время как в цикле по j на каждом шаге происходит сравнение пары чисел и замена, если большее число находится ниже, причём эта замена осуществляется снизу.
Отметим, что в системе имеется стандартная функция сортировки sort().
Примечание: второй цикл мы организовали с отрицательным шагом от конечного значения к начальному.
Можно использовать программные возможности Mathcad просто для задания функций более сложного вида. Например, определим функцию, которая равна 1, если аргумент размещён между чётным и нечётным числом, и 0 в противном случае.
Функция
возвращает ближайшее целое
большее
. Например:
Примечание: при построении графика использовался тип линии - метка.