Ниже собраны команды, управляющие порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр. Прочие команды могут быть найдены в главах Ядро MathGL и Обработка данных. Отмечу, что некоторые из команд (например, define, ask, call, for, func) должны быть расположены на отдельной строке.
'path'
¶Переходит в папку path.
$N 'question'
¶Задает N-ый аргумент скрипта равным ответу пользователя на вопрос question. Обычно команда показывает диалог с вопросом и полем ввода текста ответа. Здесь N это цифра (0...9) или буква (a...z).
$N smth
¶Задает N-ый аргумент скрипта равным smth. Отмечу, что smth используется как есть (с символами ‘'’ если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь N это цифра (0...9) или буква (a...z).
name smth
¶Определяет константу (скаляр) с именем name
и числовым значением smth
. Позднее она может быть использована как обычное число.
$N smth
¶Задает N-ый аргумент скрипта равным символу с UTF кодом smth. Здесь N это цифра (0...9) или буква (a...z).
$N smth
¶Задает N-ый аргумент скрипта равным числовому значению smth. Здесь N это цифра (0...9) или буква (a...z).
'fname' [ARG1 ARG2 ... ARG9]
¶Переходит к выполнению (вызывает) подпрограммы fname (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также func.
'fname' [narg=0]
¶Определяет подпрограмму с именем fname и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы будет остановлено при встрече func
– действует аналогично комманде stop. См. также return.
'filename'
¶Загружает дополнительные команды MGL из внешней динамической библиотеки filename. Данная библиотека должна содержать массив с именем mgl_cmd_extra
типа mglCommand
, который содержит описание новых комманд.
val
then CMD
¶Выполняет команду CMD
только если val
не ноль.
val
¶Начинает блок команд, выполняемый если val
не ноль.
dat 'cond'
¶Начинает блок команд, выполняемый если каждый элемент dat удовлетворяет условию cond.
dat 'cond'
¶Начинает блок команд, выполняемый если предыдущий if
или elseif
не был выполнен и каждый элемент dat удовлетворяет условию cond.
val
¶Начинает блок команд, выполняемый если предыдущий if
или elseif
не был выполнен и val
не ноль.
Начинает блок команд, выполняемый если предыдущий if
или elseif
не был выполнен.
Заканчивает определение блока if/elseif/else
.
$N v1 v2 [dv=1]
¶Начинает блок команд, выполняемый в цикле с $N-ым аргументом изменяющимся от v1 до v2 с шагом dv. Здесь N это цифра (0...9) или буква (a...z).
$N dat
¶Начинает блок команд, выполняемый в цикле с $N-ым аргументом пробегающим значения массива dat. Здесь N это цифра (0...9) или буква (a...z).
Заканчивает блок цикла for
.
Начинает бесконечный цикл.
val
¶Переходит к следующей итерации цикла если val не ноль, в противном случае заканчивает цикл.
dat 'cond'
¶Переходит к следующей итерации цикла если dat удовлетворяет условию cond, в противном случае заканчивает цикл.
val
¶Определяет код (между once on
и once off
) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
Останавливает выполнение скрипта.
val
¶Задает вариант аргумента(ов), разделенных символом ‘?’, для всех последующих комманд.
eq1;... var1;... [dt=1
]
¶Выполняет один шаг решения системы обыкновенных дифференциальных уравнений {var1’ = eq1, ... } с временным шагом dt. Здесь переменные ‘var1’, ... – переменные, определенные в MGL скрипте ранее. При решении используется метод Рунге-Кутта 4-го порядка.