Вплоть до появления 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 и отметьте его целиком. Стрелка служит оператором присваивания в теле программы, вводитя клавишей { (открывающая фигурная скобка) или выбором кнопки со срелкой с панели.
- Создайте новую строку программы (вставка вертикальной черты) при помощи кнопки Add Line (клавиша - ] (закрывающая квадратная скобка)). На экране появится вертикальная черта и пустая ячейка.
- Выполните щелчок на кнопке for, чтобы ввести оператор цикла. Перед символом принадлежности введите переменную i, а после него - промежуток изменения переменной 1..n. В находящейся ниже ячейке введите присваивание s <- s+i. Программа готова.
Ниже в таблице приведены операторы, находящиеся на кнопках панели программирования.
Команды панели Symbolic (символы)
|
Команда
| Функция
| Пример
|
Add Line
| Добавляет новую строку под/над (зависит от выделения) текущей строкой.
| |
| Присваивание значения локальной переменной.
|
|
if
| Условный оператор (оператор ветвления)if; условие должно стоять после if, а оператор, который исполняется, если выполнено заданное условие,- перед if.
|
|
otherwise
| Обозначает оператор, который должет быть исполнен, если условие оператора if не выполняется.
|
|
for
| Цикл for; за ключевым словом for следует переменная-счетчик, а после символа принадлежности вводится промедуток изменения этой переменной. Внутренние операторы цикла сдвинуты немного вправо.
|
|
while
| Цикл while;внутренние операторы цикла будут исполняться до тех пор, пока будет истинным условие, следующее за ключевым словом while. Пример показыветприменение цикла для нахождения нулей функции методом касательных Ньютона.
|
|
break
| Служит для преждевременного завершения цикла, чтобы, например, избежать зацикливания или слишком продолжительных вычислений.
|
|
continue
| Служит для преждевременного завершения текущей итерации цикла; сам цикл при этом продолжается.
|
|
retutn
| Преждевременное завершение программы; указанное в ячейке значение будет возвращено.
|
|
on error
| Если при вычислении выражения expr2 возникла ошибка, вычисляется выражение expr1.
|
|