(Продолжение. Начало в №1)
Входной язык системы
Алфавит определяет совокупность символов и слов, которые используются для записи команд.
Алфавит системы содержит:
- маленькие и большие латинские буквы;
- маленькие и большие греческие буквы;
- арабские цифры от 0 до 9;
- системные переменные;
- операторы;
- имена встроенных функций;
- специальные знаки.
Правила синтаксиса языка системы
- Все имена команд и функций записываются буквами латинского алфавита.
- Аргументы команд и функций записываются в круглых скобках.
- Ввод команды завершается нажатием <Enter> или символом ";".
- Большая и маленькая буквы различаются.
- В числах целая часть от дробной отделяется точкой.
- Указание знаков арифметических операций в выражениях является обязательным.
- Порядок действий в математических выражениях соответствует общепринятому порядку действий в математике.
Система осуществляет синтаксический контроль входных данных и при наличии ошибки выдает об этом сообщение, состоящее из системного номера ошибки и текста-пояснения:
![]()
Текстовые комментарии
Для ввода комментариев с любой позиции строки вводятся два символа "//", после чего вводится непосредственно сам комментарий.
Объекты системы
Вычисления осуществляются при помощи математических выражений, которые являются главным объектом любой математической системы. Выражение определяет то, что должно быть вычислено в числовом виде. Математические выражения состоят из чисел, констант, переменных, операторов, функций и специальных знаков.
Числа
В самом простом варианте в режиме прямых вычислений осуществляется работа с числами. Число - самый простой объект языка системы, представляющий собою количественные данные. Числа можно считать константами, имена которых совпадают с их значениями. Они могут быть действительными: целыми, дробными, с фиксированной точкой. Целая часть отделяется от дробной точкой. Например: 0, -3, 2.301.
По умолчанию результат содержит восемь знаков:

Однако это значение можно изменить командой printf. Она является эмуляцией одноименной функции языка С. Синтаксис команды:
printf(формат, имя переменной 1, имя переменной 2, .)
Поскольку команда эмулирует функцию языка С, то аргумент "формат" описывается в соответствии с правилами этого языка. Например:
![]()
Операторы
Арифметические операторы
Операторы - это элементы языка, при помощи которых создаются математические выражения. Они предназначены для выполнения арифметических действий над числовыми величинами и конструирования математических выражений. Операторы используются вместе с операндами. Например, в выражении "5-1" знак "-" является оператором вычитания, а числа "5" и "1" - операндами.

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

Переменные
Переменная - это поименованный объект, значение которого может изменяться во время выполнения программы. В системе отсутствуют необходимость определения типа переменной или размерности. Как только система встречает новое имя переменной, она автоматически создает ее. Для присвоения переменным значений применяется символ "=".
Правила присвоение имен идентификаторам:
- они могут состоять из любых латинских и греческих букв, цифр;
- большие и маленькие буквы различаются;
- они должны начинаться только с буквы;
- они не могут содержать пробелов;
- они не могут совпадать с именами встроенных или определенных пользователем функций;
- они не могут содержать символов кириллицы.

Переменные могут быть локальными и глобальными. Локальные переменные используются и хранятся только в текущей сессии. Для создания глобальной переменной ее нужно описать при помощи команды global. При помощи одной командой global можно описать несколько переменных, при этом они должны отделяться пробелом.
![]()
Получить список переменных, которые используются в текущей сессии, можно командою who. Применение этой команды с параметром "global" выводит список глобальных переменных, а с параметром "local" - список переменных, которые используются в текущей сессии, а также системных переменных:

Переменные располагаются в рабочей области, их можно уничтожать; вообще можно очистить и всю эту область. Для этого используется команда Clear. При использовании ее без аргументов удаляются все переменные, для удаления отдельной или нескольких переменных как аргументы команды используются их имена: Clear а [,b,c,...].
Константы. Системные переменные
Константа - это предварительно определенное числовое или символьное значение, представленное уникальным именем. Числа (например, 1, -2 и 1.23) являются числовыми константами без имени. Другие виды констант в системе принято назвать системными переменными, поскольку они задаются системой при ее загрузке. Примером такой переменной является ans, которая хранит результат последней операции. В системе также есть небольшая группа скалярных системных переменных, отличием которых от других является наличие символа "%" перед их именем.

Системные переменные защищены и не могут быть удалены или изменены. Например, попытка присвоить системной переменной %pi другое значение вызывает ошибку:

Функции
Функции - это подпрограммы с уникальными именами, выполняющие преобразования над своими аргументами. В ответ на обращение к функции она возвращает результат преобразования:. Возврат результата является неотъемлемой чертой функций. При этом результат функции подставляется на место ее вызова, что дает возможность использовать функции в математических выражениях. Например, в выражении
у = 2*log(x)+1
у - переменная, в которую записываются результат функции, "1" и "2" - числовые константы, "*" и "+" - операторы, log(x) - функция с аргументом x. В данном примере после обращения к функции log(x) происходит вычисление логарифма для переменной x, значение которого и подставляется в выражение.
Левая часть выражения, то есть имя переменной, в которую записывают результат функции, необязательна. При ее отсутствии результат работы функции присваивается системной переменной ans.
Функции в системе определяются именем и значением аргумента или аргументов в круглых скобках.
Правила записи функций:
- Имя функции не чувствительно к регистру, потому использование, например, имен abs, ABS и Abs дает одинаковый эффект.
- Аргументы функции заключаются в круглые скобки.
- Функции можно вкладывать одну в другую.
В таблице приведены наиболее распространенные математические функции.

Функции пользователя
Функция пользователя строится по определенным правилам:
- Она начинается с ключевого слова "function", после которого через пробел записывается имя функции. Функция может иметь входные параметры, например, function y=f(x).
- Математическое выражение функции, например, x*cos(x).
- Заканчивается описание функции пользователя ключевым словом "endfunction".
Элементы функции отделяются между собой запятой.
Например:
---->function y=f(x), y=x^3+x^2-1/3, endfunction
Типы данных
Система поддерживает все простые типы данных.
- Числовой тип данных. Он является основным, поскольку система ориентирована на инженерно-технические расчеты. При этом числовые данные могут быть как действительными, так и целыми. Различают шесть типов числовых целых данных: 32, 16 и 8-битовые данные со знаком и без знака.
- Комплексные числа. Они записываются в алгебраической форме с мнимой единицей, которая обозначается %i (учитывается регистр); то есть в виде a+b*%i, где а и b - соответственно действительная и мнимая части числа:
((3+5*%i) + 2*%i - Данные символьного типа. Этот тип данных реализуется путем записи их в двойных (или одинарных) кавычках. Над матрицами с данными символьного типа можно производить действия сложения, умножения и т.п.
- Данные логического типа. В системе с этими данными выполняются операции сравнения, логического отрицания, логического умножения и логического добавления. Приведем пример применения операции сравнения векторов:
Сравнение векторов логического типа:

Кроме простых типов данных система способна работать с таким структурированным типом данных как списки (list), которые удобно использовать именно для структуризации данных. Элементами списка могут быть матрицы, списки.
Различают списки трех типов:
- обычные;
- типизированные;
- матрично-ориентированные.
Создаются эти списки при помощи команд соответственно list, tlist и mlist.
Пример создания обычного списка:

Списки могут быть вложенными:

Определить тип переменной можно при помощи функции type(имя переменной), которая возвращает целое число, определяющее тип переменной. Например, число "1" - означает действительную или комплексную матрицу, "2" - полиномиальную матрицу, "3" - булевую матрицу и т.п.
При помощи специальных команд можно изменять тип данных.
Валерий ФЕТИСОВ
















