Программирование в среде MathCAD

Задание операторов с помощью функции пользователя. Программирование в среде MathCAD: возможность задания программных блоков (модулей) в версии MathCAD PLUS 6. 0 PRO и в расширенном варианте в версии MathCAD 2000 PRO. Палитра программных элементов.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 31.05.2010
Размер файла 418,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

1

Программирование в среде MathCAD

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

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

- задание нового оператора деления;

+(6,2) =3 -- применение функции деления;

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

При кажущейся простоте такого задания здесь есть проблемы. Встроенные в систему операторы нельзя переопределить. Поэтому набор доступных знаков для обозначения новых операторов ограничен. К примеру, нельзя задать новый оператор деления знаком / (он уже использован), но можно взять знак + поскольку этот символ как знак деления системой не используется.

Вторая проблема связана с вводом символа нового оператора. Скорее всего, его напрямую ввести нельзя. Придется воспользоваться типовыми приемами ввода новых символов в документы Windows. Один из этих приемов -- использование приложения, выдающего таблицу символов, с возможностью его экспорта из этой таблицы в документ другого приложения (в нашем случае -- в документ MathCAD).

Можно также воспользоваться подходящим знаком из набора Extra Math Symbol, имеющегося в составе шпаргалок QuickSheet, доступ к которым дает центр ресурсов. Для переноса знака можно скопировать его в буфер обмена с помощью операции Copy, а затем ввести в документ, используя операцию Paste.

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

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

°С (х):= х+32 °F.=1

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

37°С=98.6 °F

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

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

Вплоть до появления последних версий системы MathCAD возможности программирования в них были крайне ограниченными.

Фактически система MathCAD позволяла реализовать лишь линейные программы, в основе которых лежит понятие функции. Функция if и ранжированные переменные в отдельных случаях могли заменить условные выражения и циклы, но с серьезными ограничениями. Отсутствовала возможность задания завершенных программных модулей.

Инструкции

Возможность задания программных блоков (модулей) появилась в версии MathCAD PLUS 6. 0 PRO и в расширенном варианте имеются в описываемой версии MathCAD 2000 PRO. Они сосредоточены в палитре программных элементов.

Как видно на рисунке, программный модуль в системе MathCAD превратился в самостоятельный модуль, выделяемый в тексте документа жирной вертикальной чертой. Он может вести себя как безымянная функция, не имеющая параметров, но возвращающая результат -- первый пример на вычисление квадратного корня из числа 12. Программный модуль может выполнять и роль тела функции пользователя с именем и параметрами -- второй пример.

Обзор инструкций

Нетрудно заметить, что набор программных элементов для создания программных модулей весьма ограничен и содержит следующие элементы:

Add Line - создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока;

- символ локального присваивания (в теле модуля);

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

for - инструкция задания цикла с фиксированным числом повторений;

while - инструкция задания цикла типа "пока" (цикл выполняется, пока выполняется некоторое условие);

otherwise - инструкция иного выбора (обычно применяется с if);

break - инструкция прерывания;

continue - инструкция продолжения;

return - инструкция возврата;

оn error - инструкция обработки ошибок.

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

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

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

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

Не следует путать оператор внутреннего присваивания с оператором символьного вывода , у которого стрелка направлена в другую сторону. Эти операторы решают совершенно разные задачи.

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

ператор if является оператором условного выражения. Он задается в виде:

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

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

Инструкция for

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

for Var Nmin.. Nmax

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

Инструкция while

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

while Условие

Выполняемое выражение записывается в расположенное ниже место ввода..

Инструкция otherwise

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

f (x): = 1 if х>0 возвращает 1, если х > О

-1 otherwise возвращает -1 во всех иных случаях

Инструкция break

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

Инструкция continue

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

Инструкция return

Инструкция return прерывает выполнение программы и возвращает значение операнда, стоящего следом за ней. Например, в приведенном ниже случае

return 0 if x<0

будет возвращаться значение 0 при любом х < 0.

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

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

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

Если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2. С инструкцией on error связана функция error, которая обычно используется для возврата текстового сообщения об ошибке.

Примеры программирования

Несмотря на скромный набор программных средств, они дают системе MathCAD именно следующие возможности: задание функций с аппаратом локальных переменных, задание различных видов циклов (в том числе вложенных), упрощение алгоритмов с помощью операций присваивания и реализация по классическим алгоритмам итерационных и рекурсивных процедур. Изучить эти возможности на следующем примере:

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

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

Обычно модулю присваивается имя со списком переменных, после которого идет знак присваивания: =. Переменные в списке являются локальными, и им можно присваивать значения при вызове функции, заданной модулем Локальный характер таких переменных позволяет присваивать им те же имена, что и глобальным переменным документа. Однако лучше этого не делать и использовать разные имена для локальных переменных программных модулей и переменных документа.

Обработка ошибок в программных модулях

На рисунке показано применение операторов on error и return, а также действие функции error, задающей вывод надписи в желтом прямоугольнике при активизации мышью выражения, содержащего ошибку.

В этих примерах надо обратить внимание на два момента. Первый -- возможность применения оператора on error вне программного блока для задания функции y (x) =sin (x)/x с исключительным значением 1 при х=0.

Таким образом, инструкция on error фактически играет роль процедуры обработки ошибок. Она позволяет создавать программные модули, защищенные от грубых ошибок.

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

Следует также отметить, что система MathCAD допускает расширение путем включения в нее новых функций, написанных на языке Си или Си++.

При выполнении вычислений возможны ошибки. Система выводит сообщения об ошибках, закрашивая ошибочные имена идентификаторов в ярко-красный цвет

Ниже представлен список основных сообщений об ошибках:

array size mismatch -- несоответствие размера массива;

cannot be defined -- не может быть определено;

cannot take subscript -- не содержит верхних (нижних) индексов, definition stack overflow -- переполнение стека определений;

did not find solution -- решение не найдено;

dimension to non real power -- размерность массива -- не целое число;

domain error -- ошибка области определения;

duplicate -- дублирование;

equation too large -- слишком большое выражение;

error in constant -- ошибка в константе;

error in list -- ошибка в списке;

error in solve block -- ошибка в блоке;

file error -- ошибка в файле;

file not found -- файл не найден;

illegal array operation -- неверная операция с массивом;

illegal context -- неверный контекст;

illegal factor -- неверный множитель;

illegal function name -- неверное имя функции;

illegal ORIGIN -- неверное употребление ORIGIN;

illegal range -- неправильный диапазон;

illegal tolerance -- некорректная точность аппроксимации;

incompatible units -- несовместимые единицы;

index out of bounds -- индекс вне границ;

interrupted -- решение прервано;

invalid order -- неверный порядок;

list too long -- длинный входной список;

misplased comma -- неуместная запятая;

missing operand -- пропущенный операнд;

missing operator -- пропущенный знак операции;

must be 3-vector -- должен быть трехмерный вектор;

must be array -- должен быть массив;

must be dimensionless -- должен быть безразмерным;

must be increasing -- должен быть возрастающим;

must be integer -- должен быть целым;

must be nonzero -- должен быть ненулевым;

must be positive -- должен быть положительным;

must be range -- должен быть диапазон;

must be real -- должен быть вещественным;

must be scalar -- должен быть скаляром;

must be vector -- должен быть вектором;

nested solve block -- следующий блок решения;

no matching Given -- нет соответствующего Given;

no scalar value -- нескалярная величина;

not a name -- не является именем;

not converging -- не конвертируется;

only one array allowed -- допустим только один массив;

overflow -- переполнение;

significance lost -- потеряны значащие цифры;

singularity -- деление на нуль;

stack overflow -- переполнение стека;

subscript too large -- слишком большой нижний индекс;

too few arguments -- слишком мало аргументов;

too few constraints -- слишком мало ограничений;

too few elements -- слишком мало элементов;

too few subscripts -- мало нижних индексов;

too large to display -- слишком велико, чтобы быть отображенным;

too many arguments -- слишком много аргументов;

too many constraints -- слишком много ограничений;

too many points -- слишком много точек;

too many subscripts -- слишком много индексов;

undefindet -- не определено;

unmatched parenthesis -- дисбаланс скобок;

wrong size vector -- неверный размер вектора.

Сообщения об ошибках кратки, но их анализ не вызывает особых затруднений. Заметим, что приведенный список содержит далеко не все ошибки, а лишь наиболее распространенные.


Подобные документы

  • Краткая историческая справка и описание современной версии системы. Основные возможности современной версии MathCad, ее интерфейс. Ввод и редактирование выражений. Средства повышения эффективности вычислений и их оптимизация. Обзор программных операторов.

    курсовая работа [1,1 M], добавлен 13.05.2016

  • Краткая историческая справка и описание современной версии системы. Основные возможности современной версии MathCad, ее интерфейс. Ввод и редактирование выражений, функции, решение уравнений. Использование Mathcad для решения инженерно-технических задач.

    курсовая работа [2,8 M], добавлен 04.04.2014

  • Назначение и состав системы MathCAD. Основные объекты входного языка и языка реализации. Характеристика элементов интерфейса пользователя, настройка состава панелей инструментов. Задачи линейной алгебры и решение дифференциальных уравнений в MathCAD.

    курс лекций [1,6 M], добавлен 13.11.2010

  • Основные сведения о математическом пакете MathCAD. Характеристика операторов - элементов MathCAD, с помощью которых можно создавать математические выражения (символы арифметических операций, знаки вычисления сумм, произведений, производной, интеграла).

    методичка [2,3 M], добавлен 26.04.2010

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

    контрольная работа [964,6 K], добавлен 06.03.2011

  • Постановка задачи в численной интерполяции. Интерполяционный многочлен Лагранжа. Интерполяционная формула Ньютона. Практическая реализация методов в среде MathCad. Операции с действительными и комплексными числами. Векторные и матричные операции.

    курсовая работа [823,2 K], добавлен 13.10.2015

  • Изучение структуры рабочего документа MathCad - программы, предназначенной для автоматизации математических расчетов. Работа с переменными, функциями и матрицами. Применение MathCad для построения графиков, решения уравнений и символьных вычислений.

    презентация [639,2 K], добавлен 07.03.2013

  • Общий вид окна MathCad, меню панели инструментов исследуемой программы. Документ MathCad, его общая характеристика и методы редактирования. Разделение областей и контекстное меню, выражения. Определение дискретного аргумента, переменных и констант.

    презентация [656,5 K], добавлен 29.09.2013

  • Понятие математической модели и моделирования. Общие сведения о системе MathCad. Структурный анализ задачи в MathCAD. Режим непрерывных символьных преобразований. Оптимизация численных вкладок через символьные преобразования. Расчет опорной реакции.

    курсовая работа [649,5 K], добавлен 06.03.2014

  • Изучение возможностей системы Mathcad - пакета математических программ, используемого для различных вычислений и вычерчивания графиков. Интерфейс пользователя в системе, объекты входного языка, текстовый редактор, графический процессор, вычислитель.

    курс лекций [2,5 M], добавлен 10.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.