Иллюстрированный самоучитель по Mathematica

Функции ввода/вывода


Ввод/вывод в системе Mathematica организован с помощью интерфейсного процессора (FrontEnd) настолько естественно, что у большинства пользователей едва ли появится искушение изменять формы ввода/вывода по сравнению с установленными по умолчанию. Тем не менее, это возможно с помощью обширного набора команд, имеющихся в меню системы.

Более того, система предоставляет пользователю обширные возможности по организации ввода/вывода и различных форм диалога с помощью соответствующих функций, команд, директив и опций. Эти средства входят в язык программирования систем Mathematica и нередко используются для подготовки серьезных документов (например, обучающих и тестирующих программ), а также для создания пакетов расширения.

Прежде всего отметим функции ввода/вывода, позволяющие организовать диалог с системой в стиле, подобном тому, что используется при программировании на Бейсике. Основные функции для этого следующие:

  • Input [ ] — останавливает работу системы и возвращает значение выражения, которое будет введено в появившемся диалоговом окне (служит для организации диалогового ввода);

  • Input [ "prompt" ] — то же, что и предыдущая функция, но с выводом в диалоговое окно комментария prompt;
  • InputString [ ] — выполняет интерактивное чтение в символьную строку;
  • InputString [ "prompt" ] — то же, но с выводом в диалоговое окно комментария prompt;
  • StylePrint [ехрr] — создает в текущем документе новую ячейку со стилем по умолчанию и заносит в нее выражение ехрг;
  • StylePrint[expr,"style"] — создает в текущем документе новую ячейку со стилем style и заносит в нее выражение ехрr;
  • Print [expr] — выводит на экран дисплея значение выражения ехрг; совместно с Input может использоваться для организации диалога;
  • Print ["prompt", expr] — выводит на экран дисплея текстовый комментарий, указанный в кавычках, и следом — значение выражения ехрr.

Этих функций достаточно для организации простейшего диалога с программой.

На рис. 7.1 показан простейший пример организации диалога в стиле, принятом в языке Бейсик.
В данном случае вычисляется длина окружности с запросом радиуса R.



Рис. 7.1. Пример организации диалога

При вычислении документа, приведенного на рис. 7.1, вначале исполняется функция Input. Это ведет к появлению диалогового окна в центре экрана — на рис. 7.1 оно несколько смещено вниз, чтобы не загораживать содержимое ячейки документа. В окне виден запрос, который указан в кавычках как параметр функции Input. После ввода нужного значения (в нашем примере это радиус окружности) и нажатия клавиши Enter или щелчка на кнопке ОК диалогового окна функция Input возвращает введенное значение, и оно присваивается переменной Р.. После этого функция Print выводит на экран вычисленное значение длины окружности с кратким комментарием (рис. 7.2).



Рис. 7.2. Документ рис. 7.1 по окончании диалога

Разумеется, для данного примера нет никакого смысла организовывать диалог в такой форме, поскольку однократное вычисление длины окружности проще задать прямо в тексте документа без запроса радиуса — просто указав R = 10. Однако при составлении сложных программ, например ориентированных на многократные вычисления с различными данными по скрытым формулам, такая возможность организации диалога очень полезна. Ее можно использовать и при составлении обучающих программ на базе системы Mathematica.

К сожалению, комментарий, отображаемый в окне функции ввода Input, возможен только на английском языке — при вводе символов кириллицы вместо обычных надписей выводятся коды (в то же время функция Print исправно выводит комментарии на русском языке). Это связано с выбором для данного окна шрифта, не содержащего символов кириллицы.



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