Курсовая работа (т): Способы программирования и возможности в программе MathCAD

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

.1 Элементы интерфейса Mathcad

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

Рис. 1.1

Документ системы Mathcad называют рабочим листом (WorkSheet), и он создается или изменяется в окне редактирования, которое доступно сразу после загрузки программы. Окно редактирования содержит два объекта: курсор в виде красного крестика, определяющего позицию ввода новых компонентов документа, и вертикальную прерывистую черту - границу страницы.

Перемещение курсора производится стрелками на клавиатуре или щелчком мыши в области окна редактирования. Изменить ориентацию и поля страницы можно через пункт меню Файл - Настройка страницы.

Верхнюю часть окна программы занимают панели:

строка заголовка с именем программы и текущего документа;

строка меню, открывающая доступ к подменю с различными камандами;

стандартная панель инструментов;

панель форматирования;

панель инструментов "Математика" (Math) для ввода математических объектов - панель с кнопками, открывающими палитры специальных математических знаков и греческих букв (рис. 1.2).

Рис. 1.2. Интерфейс программы MathCAD

Отсутствующие на экране панели можно легко восстановить через пункт меню Вид - Панели - Имя панели.

Как уже отмечалось, отличительной особенностью программы Mathcad является возможность описания решаемой задачи в виде, близком к обычной математической записи. Программа не только выполняет вычисления по введенным формулам, решает уравнения различных типов, позволяет легко строить разнообразные графики, но и выполняет преобразования в символическом виде. Встроенные возможности форматирования текста предоставляют средства для оформления документа в стиле программы MS Word.

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

Вставить - для вставки объектов и их шаблонов, включая графические элементы;

Формат - для изменения формата объектов;

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

Символика - для выбора операций символьного процессора.

Компоненты документа Mathcad создаются не только вводом символов с клавиатуры, но и с использованием наборов специальных математических символов, размещенных на палитрах панели "Математика".

Кнопками панели Математика можно открыть панели Калькулятор (1), создания графиков Графики (2), работы с матрицами Матрица (3), записи выражений Вычисление (4), вычислений Исчисление (5), формирования логических выражений Булевые (6), программирования Программирование (7), ввода греческих букв Греческие (8) и символьных операций Символика (9) (см. рис. 1.2).

. Средства повышения эффективности вычислений и их оптимизация

Как отмечалось, входной язык системы Mathcad - интерпретируемый. В интерпретаторах, например, в Бейсике, листинг программы пользователя анализируется системой сверху вниз(а в пределах строки - слева направо), и любые указания в программе тут же выполняются. Так же просматриваются блоки в системе Mathcad. Как только блок опознается, система автоматически запускает внутренние подпрограммы для выполнения необходимых действий, например, вычисления по формуле, вывода таблицы значений вектора, построения рисунка по его шаблону и т. д.Интерпретаторы работают медленно, поэтому не случайно, что пользователи,работавшие со старыми версиями Mathcad, отмечали медлительность систем,особенно при сложных вычислениях и при построении графиков. Медлительность является и следствием работы системы в графическом режиме, когда малейшее изменение содержания экрана требует его полной перерисовки.В последние версии Mathcad введена экспертная система SmartMath. Эта система старается использовать при численных вычислениях конечные формулы,полученные в результате символьных (аналитических) преобразований. Часто (хотя и не всегда) это дает значительное ускорение вычислений в сравнении сих

реализацией численными методами.Операция оптимизации вычислений с помощью системы SmartMath вводится специальными атрибутами (знак * у формул) и словами - директивами. Их число в новых версиях Mathcad значительно увеличено, и для ввода операторов и директив символьной математики добавлена специальная палитра. Таким образом системаSmart Math превратилась в полноправного члена семьи Mathcad. Наиболее развит этот подход в самом мощном варианте системы - Mathcad 2000 Premium, в состав которой введено оптимизирующее расширение TheExpertSolver, автоматически включающее «на всю катушку» средства SmartMath.

. Программирование

9.1 Обзор программных операторов

Рисунок 1. Программные операторы в MathCAD

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

Эти возможности в расширенном варианте появились в MathCAD 7.0 Pro и имеются в описываемой версии MathCAD 2001 PRO. Они сосредоточены в наборной панели программных элементов Programming (показана на рисунке), включаемой кнопкой  на панели Math

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

Эти подпрограммы-функции составляются так же, как и определения функций. Рассмотрим простой пример вычисления суммы:Sum(n)=1+2+3+..+n:

Задайте сначала имя функции Sum, вслед за которым введите список параметров (n) и оператор присваивания :=

Введите начальное значение s <-- 0 и отметьте его целиком. Стрелка служит оператором присваивания в теле программы, вводитя клавишей { (открывающая фигурная скобка) или выбором кнопки со срелкой с панели.

Создайте новую строку программы (вставка вертикальной черты) при помощи кнопки AddLine ( клавиша -] (закрывающая квадратная скобка)). На экране появится вертикальная черта и пустая ячейка.

Выполните щелчок на кнопке for, чтобы ввести оператор цикла. Перед символом принадлежности введите переменную i, а после него - промежуток изменения переменной 1..n. В находящейся ниже ячейке введите присваивание s <- s+i. Программа готова.

Ниже в таблице приведены операторы, находящиеся на кнопках панели программирования.

Таблица 1. Команды панели Symbolic

Команды панели Symbolic (символы)

Команда

Функция

Пример

AddLine

Добавляет новую строку под/над (зависит от выделения) текущей строкой.


Присваивание значения локальной переменной.

if

Условный оператор (оператор ветвления)if; условие должно стоять после if, а оператор, который исполняется, если выполнено заданное условие,- перед if.

otherwise

Обозначает оператор, который должет быть исполнен, если условие оператора if не выполняется.

for

Цикл for; за ключевым словом for следует переменная-счетчик, а после символа принадлежности вводится промедуток изменения этой переменной. Внутренние операторы цикла сдвинуты немного вправо.

while

Цикл  while;внутренние операторы цикла будут исполняться до тех пор, пока будет истинным условие, следующее за ключевым словом while. Пример показыветприменение цикла для нахождения нулей функции методом касательных Ньютона.

break

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

continue

Служит для преждевременного завершения текущей итерации цикла; сам цикл при этом продолжается.

retutn

Преждевременное завершение программы; указанное в ячейке значение будет возвращено.

onerror

Если при вычислении выражения expr2 возникла ошибка, вычисляется выражение expr1.




10. Примеры программ

Условный оператор if и оператор otherwise.Рассмотрим пример программного блока, вычисляющего факториал с использованием рекурсии

В данном примере 1 возвращается, только если n=0 или n=1. Обратите внимание на задание некольких условий - со знаком плюс, каждое условие в скобках. В остальных случаях, учитывая формулу n!=n*(n-1)!, вызывается fakt(n-1) и умножается на n. При помощи функции error можно вывести сообщение об ошибке при неправильном вводе аргумента.


Для демонстрации работы цикла for рассмотрим ту же задачу, но вычисление факториала осуществим при помощи цикла.

Если n=0 или n=1, возвращается 1, в противном случае при помощи цикла for вычисляется произведениеn!=1*2*3...*n. Вычисленное последним значение pвозвращается автоматически.


В следующем примере при помощи алгоритма Евклида определяется наибольший общий делитель. Для реализации алгоритма используется цикл с ключевым словом while


Прерывание цикла при помощи операторов break и continue. Оператор return .Первый пример - релизация метода касательных Ньютона для определения нулей функции. На основе начального значения x вычисляется новое улучшенное значение x, расположенное ближе к искомому нулю функции. При этом итерации повторяются до тех пор, пока значение функции не станет меньше заданной точности (в примере 10-6).

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


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


Обратите внимание, по завершении работы программы выдается вектор значений.

Ниже приводится программа, вычисляющая коэффициенты Фурье функции, причем в результате выдается матица значений: нулевая по счету строка содержит коэффициенты Аn, а первая - коэффициенты Bn. Для выделения этих коэффициентов выдавемая матрица транспонируется и из нее выбирается нулевой столбец для коэффициентов Аn, и первый - для Bn.



10. Практическая часть

Задание: написать функцию условия, определенную с помощью программы.

Решение:


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

возможность применения циклов и условных операторов;

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

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

Вывод: мы решили задачу и рассмотрели для чеговообще нужны условные операторы в MathCAD.

Заключение

Мы разобрали программирование в среде MathCAD, посмотрели на примеры решения задач. Увидели интерфейс и разобрали его. Рассмотрели программные операторы и их способы применения. Узнали про средства повышения эффективности и производительности, про примемы работы с формулами.

Литература

1. Очков В.Mathcad 14 для студентов и инженеров. Русская версия [Текст] / Очков В. СПб.:, БХВ-Петербург, 2009 г. - 512 с.

. Любимов Э.В.Mathcad. Теория и практика проведения электротехнических расчетов в среде Mathcad и Multisim (+ DVD-ROM) [Текст] / Любимов Э.В. М: Наука и техника, 2012. - 400 стр. ISBN 978-5-94387-692-9.

. Охорзин В.А. Прикладная математика в системе Mathcad [Текст] / Охорзин В.А. - М: Лань, 2009. - 352 стр. ISBN 978-5-8114-0814-6.

. Шушкевич Г.Ч. Шушкевич С.В. Компьютерные технологии в математике. Система Mathcad 14. В 2 частях. [Текст] / Шушкевич Г.Ч., Шушкевич С.В. - М: Издательство Гревцова, 2010. - 288 стр. ISBN 978-985-6826-81-1, 978-985-6826-86-6.

Источник: https://www.bibliofond.ru/detail.aspx?id=871599