<< lines Командное окно %onprompt >>

Scilab Help >> Командное окно > mode

mode

устанавливает или запрашивает режим отображения в командном окне инструкций Scilab

Синтаксис

mode(k)
k = mode()

Аргументы

k

целое число от -1 до 6: выбранный или текущий режим исполнения / отображения на экране.

Описание

mode(k) позволяет выбрать как информация отображается в командном окне в ходе выполнения инструкций Scilab. Если эти инструкции включают в себя инструкцию mode, то последующие инструкции в том же окружении будут отображаться в соответствии с новым режимом. Точка с запятой, поставленная в конце любой инструкции всегда прекращает отображение результатов работы, несмотря ни на какой текущий режим исполнения.

Контекст
mode(..) и другие инструкции могут быть использованы и исполнены в различном контексте:
Характеристики
режим # -10 1 2 3 4 6
Инструкции отображения [a] C C C S C C S C S C S K
Результаты отображения [b] всегдавсегдавсегдавсегдавсегдавсегда
Шаг за шагом [s] S F K S F T K
Кратко [c] C+++++SFT +CK++ SFT+S+
Комментарии [d] [e] [f] [g][h][h,i]
Комментарии
[a]: В нормальном режиме инструкции отображаются в предложением о вводе -->, идущим впереди. В пошаговом режиме вместо этого используется >>.
[b]: указывает, что точка с запятой в конце не поставлена.
[c]: "+" означает: нет дополнительной пустой строки после результатов. "++" означает: нет дополнительной пустой строки ни после выполненных инструкций, ни после результатов.
[d]: По умолчанию режим молчания в функциях и с execstr().
[e]: mode(5) эквивалентно mode(1), но не должен быть использован.
[f]: Режим работы по умолчанию в командном окне.
[g]: По умолчанию режим работы exec().
[h]:
  • Любой комментарий // отображается без предложения о вводе и без остановки на нём.
  • Некоторые паразитные предложения о вводе --> и дополнительные пустые строки могут иногда отображаться (программная ошибка).
  • Обратный вызов всегда делается уникальной строкой инструкций, как если бы они были определены и запущены одной строкой. Следовательно, оба доступных пошаговых режима исполнения могут быть активированы, но бесполезны в любом обратном вызове.
[i]: mode(7) делает то же самое, но не должен быть использован.
[s]: Пошаговый режим останавливается после каждой строки инструкций и ждёт нажатия пользователем клавиш <ввод> или p<ввод>, чтобы продолжить работу. Нажатие клавиши p вводит режим паузы. Эти режимы могут быть использованы например в демонстрационных примерах или режиме необработанной отладки.

Режим в вызывающем окружении никогда не меняется после использования mode(..) в вызывающей функции, в исполняемом сценарии .sce или в качестве ввода execstr() после того, как выполнение завершится и вернёт результат. Когда инструкция mode(k) используется в обратном вызове, то она исполняется, она становится и остаётся актуальным режимом отображения в командном окне после завершения обратного вызова.
Вывод специально отображаемый функциями наподобие disp() или mprinf() никогда не отменяется, даже в режиме mode(-1).
mode(5), mode(7) и другие незарегистрированные значения могут приниматься, но не должны использоваться: они могут быть удалены или переопределены в будущем.

Примеры

В функции:

function example_mode(level_mode)
   disp(mode());
   mode(level_mode)
   a = 3
endfunction
mode(2)
example_mode(0)
mode()
example_mode(1)
example_mode(2)

В инструкции exec(script, mode):

ins = [
    "mprintf(""Режим исполнения по умолчанию: %d\n"", mode())"
    "mode(i)"
    "mprintf(""Новый активный режим: %d\n"", mode())"
    "// Новый комментарий"
    "a = rand(2,4)"
    "b = %pi;"
    "c = %s;"
    ];
fn = TMPDIR + "\test_mode.sce";
mputl(ins, fn);
//
mode(2)
i = 1;
exec(fn)
mode()
exec(fn, 0)
i = 3; // инструкции отображаются
exec(fn, 3)
i = 4; // инструкции отображаются + пошаговый режим. "p<ввод>" вводит режим паузы
exec(fn, 4)

With execstr():

ins = [
    "mprintf(""Режим исполнения по умолчанию: %d\n"", mode())"
    "mode(1)        // Введение компактного режима"
    "mprintf(""Новый активный режим: %d\n"", mode())"
    "a = rand(2,4)"
    "b = 1"
    "c = %pi"
    ];
mode(2)
execstr(ins)
mode()       // Восстановлен исходный режим

В обратном вызове (в данном случае меню):

mode(2)
uimenu("parent",0,"Label","mode_test",..
       "callback", "disp(mode()); mode(1); a = rand(2,4), pwd(),");
// Щёлкните по меню "mode_test" и посмотрите что отобразится в командном окне
mode()
delmenu mode_test

Смотрите также

История

VersionDescription
6.0
  • mode(4) теперь выполняется пошагово и может быть приостановлен в сценариях и в функциях.
  • Для/внутри сценариев mode(4) теперь отображает каждую строчку инструкций и отображает результаты компактно. Он может использоваться для демонстрационных примеров.
  • Обратные вызовы всегда исполнялись в режиме молчания mode(-1). Теперь они исполняются по умолчанию в текущем режиме mode().

Report an issue
<< lines Командное окно %onprompt >>