Основы программирования в Mathcad

Основы программирования в Mathcad

Система Mathcad задумывалась как средство проведения технических расчётов для людей, не знакомых с программированием, в связи с этим соответствующая система обладала очень скудным набором инструментов программирования. Однако, стало очевидным, что в ряде случаев без программирования не обойтись, а существовавшие инструменты были очень неудобны для разработки ветвящихся циклических программ. Возможность расширения программ Mathcad за счёт подключения динамических библиотек, написанных на других языках, таких как С++ не был удобен, т. к. требовал от пользователя глубокий знаний языков программирования. В связи с этим в Mathcad был встроен новый язык программирования, а старые средства программирования объявлены устаревшими и не рекомендуются к использованию [1].

За основу языка программирования, встроенного в систему Mathcad не был взят ни один из существовавших на тот момент популярных языков, т. к. он рассчитывался на специфическую аудиторию и задачи. Реализованный в системе язык вобрал в себя много из общепринятых математических обозначений, а встроенная библиотека содержит множество функций, решающих типичные математические задачи.

Целью написания заметки является обзор встроенного в систему Mathcad языка. Приводится описание основ синтаксиса языка и среды программирования, а также примеры программ.

Интерфейс системы Mathcad. Массивы. Графики

Для добавления кода необходимо добавить в панель Programming Toolbar. Панель содержит операторы языка. Самой первой кнопкой, которая используется в любой программе является Add Line — она добавляет строку кода на рабочую область.

На рисунке приведён пример программы, формирующей два массива и строящей по ним график:

В программе добавлено 2 «строчки кода»:

  • определена переменная i при помощи ранжирования. Ранжирование — это техника, напоминающая использование циклов в традиционных императивных языках программирования, однако более привычная математикам;
  • определяется переменная Xi , при этом i является индексом, фактически, Xi является массивом из 10 элементов, при этом в правой части строки задана формула вычисления i-того элемента.

Для задания индексов элементов используется соответствующая кнопка панели инструментов (сверху в центре). Индексы могут быть как верхними, так и нижними. Важную роль играет взаимное расположение строк. Система Mathcad просматривает строки снизу вверху, поэтому переменная i должна располагаться выше Xi и графика (который тоже их использует).

Для построения графика был выбран пункт меню «График Х-У», отвечающий за построение двумерных графиков (Mathcad позволяет также строить поверхности и различные виды диаграмм). График имеет 2 оси, на каждой из которых можно ввести нижнее и верхние значения и имя массива элементов, значения которого должны отображаться. В примере по горизонтальной оси отложены значения переменной i, а по вертикальной — Xi , при этом изменено нижнее значение вертикальной оси на 5.

Функции. Ветвление. Локальные переменные

На следующем примере показано использование ветвления, циклов и функций в системе Mathcad:

В программе, как и в прошлом примере заводится переменная i, принимающая значения от 0 до 360. Значения переменной i интерпретируются как градусы, однако, станадртные тригонометрические функции системы ожидают поступления на свой вход аргумента в радианах. С целью преобразования градусов в радианы в программе описана функция torad . Функция f(x) вычисляет значение sin(x)*cos(x) . График, приведённый в центре рис. 2 иллюстрирует, что функция может использоваться вместо массива, т. к. массив, фактически является функцией своего индекса.

Функция sum принимает аргумент n и вычисляет сумму sin(x)*sin(x) , где x изменяется в диапазоне от 1 до n. Sum(0) полагается равным нулю. Начальное значение присваивается при помощи операции ← , т. е. Операции локального присваивания. Локальное присваивание ограничивает области видимости переменной до текущей функции или блока. Функция использует блок для соединения трех операций.

В функции используется цикл, также содержащий блок. Блоки в системе используется в тех случаях, когда вычисления не умещаются в одну строку. В примере требуется вычислить значение Xi, а затем прибавить его к сумме, это делается в 2 действия чтобы продемонстрировать использование блоков. Все операции блока выполняются последовательно сверху вниз, однако могут быть прерваны операциями break , return и continue . Операция break осуществляет выход из цикла, операция return — выход из функции и возврат значения, операция continue инициирует выполнение следующей итерации цикла.

Операции типа break имеет смысл использовать только совместно с оператором условия. Использование такого оператора показано в 4 строке функции на рис.2. Элемент массива sum инициируется только в том случае, если его индекс больше 1, т. к. в противном случае при выполнении кода будет осуществляться обращение к элементу массива с отрицательным индексом.

📎📎📎📎📎📎📎📎📎📎