Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие (MathCad).doc
Скачиваний:
95
Добавлен:
27.11.2019
Размер:
3.98 Mб
Скачать

1.7. Средства программирования в системе Mathcad

1.7.1. Задание операторов пользователя

Mathcad поддерживает возможность задание новых операторов пользователя. Такой оператор задается практически так же, как функция пользователя, но вместо имени выбирается какой-либо подходящий знак. Например, можно задать оператор деления в виде:

После этого новым оператором можно пользоваться:

  1. ¸(6,2) = 3 — пример применения новой функции деления.

  2. 6¸2 = 3 — пример применения нового оператора деления.

Разумеется, можно задавать и другие операторы, в том числе для работы с одним операндом. Так, например, можно следующим образом определить оператор пересчета температуры по шкале Цельсия в температуру по шкале Фаренгейта:

Используя затем кнопку xf на панели символов отношения, можно выполнять операцию пересчета в виде:

37°C = 98.6·°F.

Выбор знаков для операторов ограничен. Уже используемые знаки операторов применять нельзя. Можно, однако, также воспользоваться подходящим знаком из набора Extra Math Symbols (дополнительные математические символы), имеющегося в составе быстрых «шпаргалок» (QuickSheets), доступ к которым предоставляет центр ресурсов. Для переноса знака в документ можно скопировать его в буфер обмена командой Copy (копировать), а затем вставить в документ командой Paste (вставить).

После того как оператор задан, его можно использовать и как функцию, и как оператор. При использовании нового оператора, надо вывести его шаблон с помощью панели математических знаков. В нашем случае следует щелкнуть на кнопке xfy этой панели, которая выводит особый шаблон c тремя местами ввода. Введите операнды, например 6 и 2, в крайние места ввода, а символ оператора — в среднее. Поставив после этой конструкции знак равенства, увидите результат — число 3.

1.7.2. Задание программных модулей

Программы в Mathcad задаются в виде весьма наглядных программных блоков (модулей), которые есть в палитре Programming. Модуль выделяется в документе жирной вертикальной чертой. Модуль может вести себя как безымянная функция без параметров, но возвращающая результат, как оператор и как функция пользователя.

Инструкция Add Line

Инструкция Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому, в принципе, можно создавать сколь угодно большие программы.

Оператор внутреннего присваивания

Оператор  выполняет функции внутреннего (локального) присваивания. Например, выражение x  123 присваивает переменной x значение 123. Локальный характер присваивания означает, что такое значение переменной x хранится только в теле программного модуля. За пределами тела программы значение переменной x может быть неопределенным, либо равным значению, которое задается вне программного блока операторами локального (:=) или глобального (º) присваивания.

Условная инструкция if

Инструкция if позволяет строить условные выражения:

Выражение if Условие

Если Условие выполняется, то возвращается значение Выражения. Совместно с этой инструкцией часто используются инструкции прерывания break и иного выбора otherwise. Очевидный пример применения оператора if представлен ниже:

И нструкция for

Инструкция for служит для организации циклов с заданным числом повторений. Она записывается в виде:

for Var Î Nmin .. Nmax

Эта запись означает, что выражение, помещенное в расположенное ниже место ввода, будет выполняться для значений переменной Var, меняющихся от Nmin до Nmax с шагом +1. Переменную счетчика Var можно использовать в исполняемом выражении. Ниже даны примеры задания функций вычисления сумм и произведений:

И нструкция while

Инструкция while служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Она записывается в виде:

while Условие

В ыполняемое выражение записывается в расположенное ниже место ввода. Например, две приведенные ниже программы вычисляют значение факториала:

Обратите особое внимание на второй пример вычисления факториала. Здесь один программный модуль задается внутри другого. Вообще говоря, для нескольких подмодулей, которые должны выполняться в составе циклов, служит команда Add Line (добавить линию), добавляющая в модуль дополнительную вертикальную черту.

Инструкция otherwise

Инструкция иного выбора otherwise обычно используется совместно с инструкцией if. Это поясняет следующая программная конструкция:

В данном случае функция f(x) возвращает 1, если x > 0, и –1 во всех остальных случаях.

Инструкция break

Инструкция break вызывает прерывание выполнения программы. Чаще всего эта инструкция используется совместно с условной инструкцией if и инструкциями циклов while и for, обеспечивая переход в конец тела цикла.

Инструкция continue

Инструкция continue используется для продолжения работы после прерывания программы. Она также чаще всего используется совместно с инструкциями циклов while и for, обеспечивая возвращение в точку прерывания и продолжение вычислений.

Инструкция return

О собая инструкция return прерывает выполнение программы и возвращает значение операнда, стоящего следом за ней:

Обратите внимание на то, что в первом примере задание F(3) приводит к ошибочной ситуации - обращение к функции будет окрашено красным цветом, а результат не будет выводиться. Однако, если курсор мыши наведен на вызов, то появится сообщение «No value!!!».

Инструкция on error и функция error

Инструкция on error позволяет создавать процедуры обработки ошибок. Эта инструкция задается в виде:

Выражение_1 on error Выражение_2

Если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2. Для обработки ошибок полезна также функция error(S), которая, будучи помещенной в программный модуль, при возникновении ошибки выводит всплывающую подсказку с сообщением, хранящимся в символьной переменной S.