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

      Комментарии к записи Основы программирования в Mathcad отключены

Главная Форумы Программирование Основы программирования в Mathcad

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 10 мес., 4 нед. назад.

  • Автор
    Сообщения
  • #3108

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

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

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

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

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

    На рисунке приведён пример программы, формирующей два массива и строящей по ним график:
    example_range
    В программе добавлено 2 «строчки кода»:

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

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

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

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

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

    В программе, как и в прошлом примере заводится переменная 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, т. к. в противном случае при выполнении кода будет осуществляться обращение к элементу массива с отрицательным индексом.

    Список дополнительной литературы по Mathcad

Для ответа в этой теме необходимо авторизоваться.