- •Программирование в математическом пакете Mathcad
- •Новосибирск 1999
- •1. Введение
- •Программирование c использованием программ-функций MathCad
- •2.1. Описание программы - функции и локальной оператор присваивания
- •2.2. Обращение к программе-функции Mathcad
- •2.3. Программирование в программе-функции линейных алгоритмов
- •2.4. Программирование в программе-функции разветвляющихся алгоритмов
- •2.4. Программирование в программе-функции циклических алгоритмов
- •Дополнительные операторы программирования циклов в пакете Mathcad7Professional
- •3. Модульное программирование в Mathcad
- •3.1. Модульное программирование в одном документа
- •3.2. Модульное программирование в нескольких документах Mathcad
- •5. Рекомендованная литература
Дополнительные операторы программирования циклов в пакете Mathcad7Professional
Оператор continue. Обычно используется для продолжения выполнения цикла путем возврата в начало тела цикла. Следующий пример поясняет работу этого оператора.
Пример 2.14. Составим программу-функцию, формирующую новый вектор из положительных проекций исходного вектора.
В теле программы-функции используется функция last(v), определяющая индекс последнего элемента массива v ( см. замечание 2.5).
Обращение к этой программе функции имеет вид
Если очередной элемент v i не больше нуля, то пропускаются все нижележащие операторы тела цикла ( в нашем случае - два оператора, формирующие очередную проекцию вектора w) и тело цикла повторяется при новом значении параметра цикла i.
Оператор return. Прерывает выполнение программы-функции и возвращает значение операнда, стоящего за ним. Следующий пример поясняет работу этого оператора.
Пример 2.15. Составим программу-функцию, находящую первую положительную проекцию исходного вектора. Возможны два варианта.
Вариант А Вариант B
Вариант B представляется более простым и "элегантным".
Оператор on error. Этот оператор является обработчиком возникающих при выполнении тех или иных вычислений ошибок и записывается в виде :
< выражение 1 > on error < выражение 2 >
и выполняется < выражение 1 >, если при выполнении < выражение 2 > возникает ошибка. Если ошибка не возникает, то выполняется < выражение 2 >.
Пример 2.16. Используем оператор on error для предотвращения появления ошибки "деление на нуль" при вычислении функции angl(x,y).
Функция error. Используется для вывода диагностических сообщений при возникновении в вычислениях ошибки и записывается в виде
error ( "< диагностическое сообщение пользователя >")
Функция используется в левом поле условного оператора if, как показано в следующем примере.
Пример 2.17. Программирование вывода диагностического сообщения при попытке спроектировать вектор v на нулевой вектор w.
3. Модульное программирование в Mathcad
Общая идея модульного программирования состоит в следующем:
реализации вычислительных процессов в виде отдельных программных единиц - модулей;
обращении к этим модулям в других программах с передачей данных, необходимых для вычислительного процесса.
Модульное программирование позволяет уменьшить объем исходных текстов программ, сделать их более читаемыми, ускорить написание и тестирование программ, уменьшить расходы на сопровождение (эксплуатацию) программ.
Модульное программирование в пакете Mathcad можно реализовать двумя методами :
модульное программирование в пределах одного документа Mathcad;
модульное программирование в нескольких документах Mathcad.
3.1. Модульное программирование в одном документа
Этот метод характеризуется тем, что :
для реализации простых вычислений используются локальных функций, а более сложные - программы - функции;
описание локальных функций, программ-функций и их вызов ( т.е. обращение к ним ) находятся в пределах одного документа и хранятся в одном файле. При этом часто внутри одной программы-функции находится вызовы локальных функций, встроенных функций Mathcad и другой программы-функции.
Пример 5.1. Реализуем в виде программы-функции вычисление определенного интеграла вида
используя формулу Симпсона с автоматическим выбором числа узлов. При этом программа-функция Simpson(f,a,b,N) вычисляет определенный интеграл по формуле Симпсона при фиксированном числе интервалов N, а программа-функция Adapt(f,a,b) выбирает по заданной точности вычисления интеграла ( равной 10-8 ) количество интервалов.
Используя эти программы - функции вычислим определенный интеграл от функции f(x) = x2 на отрезке [0,1]. Точное значение интеграла равно 1/3=0.33333333333333... Обращение к программе-функции Adapt дает результат
Перед обращением к программе-функции Adapt необходимо описать функцию пользователя f(x) в виде
f(x) : = x2,
так как имя функции f(x) используется в качестве фактического параметра.