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

Для вставки программного кода в документы MathCAD имеется специальная панель инструментов Программирование. Большинство кнопок

этой панели выполнено в виде текстового представления операторов программирования, поэтому их смысл легко понятен.

Программирование имеет ряд преимуществ:

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

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

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

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

Чтобы создать программный модуль, надо:

1. ввести часть выражения, которая будет находиться слева от знака присваивания и сам знак присваивания, например, f(x).

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

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

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

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

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

Язык программирования не был бы эффективным, если бы не позволял создавать внутри программных модулей локальные переменные. Присваивание в пределах программ, в отличие от документов MathCAD, производится с помощью оператора Локальное присваивание (Local Definition), который вставляется с помощью кнопки с изображением стрелки«←». Ни оператор присваивания :=, ни оператор ввода = в пределах программы не применяются.

Пример 1. вычислить значение f(x), заданное выражением f(x):=z+5

f(6)=11

 

Условные операторы (if, otherwise)

Действие условного оператора if состоит из двух частей. Сначала проверяется логическое выражение (условие) справа от него. Если оно истинно, выполняется выражение слева от оператора if. Если ложно, выполнение программы продолжается переходом к ее следующей строке.

Вставить условный оператор можно следующим образом:

• создайте новую строку программного кода, нажав кнопку Add Line,

• нажмите кнопку if и справа от него введите условие (панель Булевы),

• выражение, которое должно выполняться, если условие истинно, введите слева от оператора if,

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

Пример 2.

Рассмотрим использование оператора if для задания кусочно-гладкой функции.

 

 

Пример 3.

Можно определить функцию непосредственно, при помощи встроенной функции if:

но это определение хотя и более краткое, но менее наглядное.

Пример 4.

Эквивалентное, но намного более сложное, определение этой же функции:

 

Операторы цикла (for, while, break, continue)

В языке программирования MathCAD имеются два оператора цикла: for и while. Первый из них дает возможность организовать цикл по некоторой переменной, заставляя ее пробегать некоторый диапазон значений. Второй создает цикл с выходом из него по некоторому логическому условию. Если выбран оператор for, то в соответствующие местозаполнители надо вставить имя переменной и диапазон ее значений, если while – то логическое выражение, при нарушении которого должен осуществляться выход из цикла. В нижний местозаполнитель вводится тело цикла, т.е. выражение, которое должно выполняться циклически. Важно, чтобы в программе присутствовал оператор, делающий условие цикла ложным. В противном случае, цикл будет выполняться бесконечно. Если выполняемая программа зациклилась, то ее можно остановить, нажатием клавиши Esc.

Пример 5.

Пример 6. Поиск первого элемента вектора, превосходящего заданное

значение.

Создание вектора

 

Иногда необходимо досрочно завершить цикл, т.е. не по условию в его заголовке, а в некоторой строке тела цикла. Например, для предыдущей программы существует вероятность зацикливания. Если каждый элемент вектора меньше, чем заданное число, то условие никогда не станет ложным и поиск выйдет за пределы вектора, что приведет к сообщению об ошибке «индекс вне границ». Чтобы этого не случилось, предназначен оператор break.

 

 

Пример 7. Поиск первого элемента вектора, превосходящего заданное

значение, с использованием оператора break.

Например, как только значение переменной цикла i достигнет 2, цикл, благодаря оператору break в последней строке программного модуля, прерывается. Соответственно, значение переменной Х остается равным х=0+1+2=3.

Пример 8.

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

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

• начального определения, предотвращающего бесконечную рекурсию,

• определения функции в терминах предыдущего значения

функции.

Основная идея подобна идее математической индукции: если можно получить значение f(n+1) из f(n) и известно f(0), то известна и вся функция f.

Пример 9. Нахождение факториала.

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

 

Возврат значения (return)

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

Пример 10.


<== предыдущая лекция | следующая лекция ==>
Нагревание поверхности Земли | Сеть на базе протокола SIP. Сигнализация на основе протокола SIP




Дата добавления: 2017-09-19; просмотров: 5146;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.