Основы работы с системой MathCAD 7.0

       

Язык программирования системы MathConnex


Назначение языка программирования Connex Script

Как было показано выше, система MathConnex может использовать свои собственные блоки с вычислительными операциями. В этих блоках могут использоваться и программные конструкции, составленные на основе специального языка программирования — Connex Script. Применение таких блоков заметно расширяет возможности подготовки сложных документов. Ниже дано достаточно полное описание этого языка.

Типы данных

Connex Script имеет данные вещественного и комплексного типа. Вещественные числа задаются с двойной точностью в IEEE-формате. Числа задаются в виде:

314 3. 14 5. 78е14

и т. д. Для задания комплексных чисел используется знак мнимой единицы i или J, например:

5. 78i 0. 5e10i 4. 0+ 8. 7j

Бесконечность задается словом "Inf". Слово "NaN" (Not-a-Number) означает нечисловое значение, например:

х = Inf у = NaN

Операторы и функции

Операторы Connex Script имеют хорошо известный вид и назначение:

=+ -* / А — арифметические операторы;

.*./.л — матричное умножение, деление и возведение в степень;



- (NOT) xor & (AND) ¦ (OR) — логические операторы;

\= >= <= > < — операторы сравнения.

Операнды логических операторов располагаются по обе стороны от них (кроме операнда - для NOT, например А&В&С или 2! =3). Такие выражения возвращают логические значения.

Connex Script содержит следующие встроенные функции:

abs — абсолютное значение;

ceil — ближайшее очередное целое;

ехр — экспонента;

floor — ближайшее предшествующее целое;

log10 — логарифм по основанию 10;

log2 — логарифм по основанию 2;

In — натуральный логарифм;

max — максимальное значение;

min — минимальное значение;

mod — остаток от деления;

nelem — число элементов в переменной;

round — округленное до ближайшего целого значение;

sign — функция знака;

sqrt — квадратный корень;

time — время в секундах с начала 1980 г.;

trunc — число десятичных позиций;

gamma — гамма-функция.

Имеются встроенные функции комплексного переменного:


conj — комплексно-сопряженное число;
im — мнимая часть аргумента;
re — действительная часть аргумента.
Тригонометрические функции представлены следующим набором: cos, sin, tan, sec, csc, cot, pi, acsc, acos, acot, asec, asin, atan.
Гиперболические функции представлены набором: cosh, coth, csch, sech, sinh, tanh, acsch, acosh, acoth, asech, asinh, atanh.
Матричные функции: cols — число столбцов матрицы, rows — число строк матрицы и det — детерминант матрицы.
Зарезервированные слова и идентификаторы
Зарезервированные слова, которые нельзя использовать в качестве идентификаторов для задаваемых пользователем объектов:
break cols complex delete else elseif end error for function if in list load nelem new real repeat return rows static until while xor
Примеры задания имен (идентификаторов) переменных:
this_is_my_variable tl х_5 R2D2
Имена должны быть заданы одним словом (допускается соединение нескольких слов символов объединения — горизонтальная черта снизу) и начинаться с буквы. Имена переменных допускается задавать только латинскими буквами.
Интерфейсные переменные
Интерфейсные переменные служат для организации обмена данными между блоками в документах MathConnex:
in0, inl,... — организуют ввод данных в блок с выходов других блоков;
out0, out1,... — организуют вывод данных из блока.
Интерфейсные переменные могут использоваться и в блоках системы MathCAD.
Создание списков, векторов и матриц
MathConnex может оперировать списками следующего вида:
{ ехрг, ехрг; ехрг, ехрг}
Списки создаются в фигурных скобках. Для разделения данных одного порядка используется запятая, а для данных разного порядка — точка с запятой.
Примеры задания списков:
Х = { 1, 2, 3} — задан вектор Х из трех элементов;
М= { 1, 2, 3; 4, 5, 6} — задана матрица М с размером 2х3.
Для задания векторов с элементами-числами можно использовать выражения вида:
start_expr: step_expr: end_expr
где start_expr — условие, задающее начальное значение списка чисел; step_ ехрг — шаг изменения ряда чисел; end_expr — условие, задающее конечное значение чисел в списке.


Например, выражение
Х-1: 2: 100
создает вектор чисел с именем X, у которого первое число равно 1, а последующие (до значения 100) идут с шагом нарастания 2. Другие примеры:
Y = 1: 5 — вектор чисел Х от 1 до 5 с шагом по умолчанию 1;
Z = 10: 1 — вектор чисел Z от 10 до 1 с шагом по умолчанию -1;
Запись выражений
Запись выражений выполняется в обычной алгебраической форме, например:
7 7+ 8* 19 / 3. 3 х х+ 8х/у* 8 х = у [5] А [3] = В [5, 3]* х
Вычисление функций также задается, как обычно, например:
у = sin (x)
При этом функция возвращает значение в ответ на обращение к ней с указанием параметра функции — переменной или выражения.
Неисполняемый однострочный комментарий задается после символа двойного слэша (//), например:
х = А [ 1, 2; 0] // take first element from 2nd and 3rd row
Многострочный комментарий помещается между символами (/*) и (*/).
Выражения размещаются в строках. Для их разделения можно использовать символ (;), например:
х = у+ 5; z = х^
х = 0; for i in 0: 5; x = x+ i; end
Для переноса длинных выражений с одной строки на другую используется символ подчеркивания ( _) в конце переносимой строки, например:
^-{i, 2, 3; _ 4, 5, 6;
7, S, 9}//3-by-3matrix
Условный оператор if
Условный оператор if используется для создания типовой конструкции:
if boolean_expr statement 1 statement2
elseif boolean_expr statements
else statement4
end Пример применения оператора if:
if ( x > у & x! - 0)
z=y/x
q = log (2-z)
elseif ( у >= x & у!
= 0)
z-x/y
q=2'\z
else
z-0
q=l
end
Поскольку действие таких конструкций хорошо известно, воздержимся от их подробного описания.
Конструкция цикла типа for
Для определения цикла с заданным числом повторений используется конструкция с оператором for:
for identifier in expr
statement 1
statement2
end
Например, оператор с заголовком for i in 1: 10 выполняет 10 циклов, поскольку переменная цикла меняется от 1 до 10 с шагом+ 1. Оператор
break, встречаясь в цикле, ведет к немедленному его прерыванию. Обычно этот оператор вводят в составе условного выражения с оператором if.

Содержание раздела