Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Работа с периферийными устройствами | Учебники

Главная > Mathematica 8 > Работа с периферийными устройствами


Работа с периферийными устройствами

Работа с периферийными устройствами

  • Функции ввода/вывода
  • Работа со строками
  • Потоки и файлы
  • Запись определений
  • Системные функции

Если пользователь использует систему 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.

Этих функций достаточно для организации простейшего диалога с программой.
На показан простейший пример организации диалога в стиле, принятом в языке Бейсик. В данном случае вычисляется длина окружности с запросом радиуса R.
При вычислении документа, приведенного на, вначале исполняется функция Input. Это ведет к появлению диалогового окна в центре экрана — на оно несколько смещено вниз, чтобы не загораживать содержимое ячейки документа. В окне виден запрос, который указан в кавычках как параметр функции Input. После ввода нужного значения (в нашем примере это радиус окружности) и нажатия клавиши Enter или щелчка на кнопке ОК диалогового окна функция Input возвращает введенное значение, и оно присваивается переменной Р.. После этого функция Print выводит на экран вычисленное значение длины окружности с кратким комментарием.
Разумеется, для данного примера нет никакого смысла организовывать диалог в такой форме, поскольку однократное вычисление длины окружности проще задать прямо в тексте документа без запроса радиуса — просто указав R = 10. Однако при составлении сложных программ, например ориентированных на многократные вычисления с различными данными по скрытым формулам, такая возможность организации диалога очень полезна. Ее можно использовать и при составлении обучающих программ на базе системы Mathematica.
К сожалению, комментарий, отображаемый в окне функции ввода Input, возможен только на английском языке — при вводе символов кириллицы вместо обычных надписей выводятся коды (в то же время функция Print исправно выводит комментарии на русском языке). Это связано с выбором для данного окна шрифта, не содержащего символов кириллицы.
Функции задания формата вывода
 
Далее отметим функции, меняющие формат представления выражений. Все они имеют в своем названии слово Form (форма). Таких функций довольно много, и их полный список вы найдете в приложении. Отметим лишь несколько наиболее часто используемых функций этого рода:

  • AccountingForm [ехрг] — выполняет вывод всех чисел, содержащихся в выражении ехрr, в бухгалтерской форме представления;
  • CForm[expr] — выполняет вывод expr в форме, принятой для языка С;
  • EngineeringForm [expr ] — дает вывод, представляя все вещественные числа в выражении expr в инженерной форме (это означает, что порядок чисел равен нулю или кратен трем);
  • FortranForm[expr] — выводит expr в форме, принятой для языка Фортран;
  • FullForm [expr] — выводит полную форму выражения expr без использования специального синтаксиса;
  • InputForm[expr] — выводит expr во входной форме;
  • NumberForm[expr, n] — выполняет вывод expr с вещественными числами, представленными с точностью до n цифр;
  • OutputForm [expr] — выполняет вывод expr в стандартной выходной форме системы Mathematica;
  • ScientificForm [expr] — выполняет вывод, представляя все вещественные числа в выражении expr в научном формате;
  • TeXFormfexpr] — выводит expr в форме, принятой для языка ТеХ, ориентированного на верстку текстов с математическими формулами;
  • TextForm[expr] — выполняет вывод expr в обычном текстовом формате;
  • TreeForm [expr] — выполняет вывод expr с показом разных уровней выражения.

В большинстве своем действие этих функций вполне очевидно. Если это не так, то смело экспериментируйте с ними. Следующие примеры дают представление об использовании различных форм вывода в системе.

Ввод (In)

Вывод (Out)

Accounting [30*10^15]

Accounting [30000000000000000]

BaseForm [55434, 16]

d88a 16

CForm[x ^ 2+3*x+x]

4*x + Power (x, 2)

ColumnForm [ { а , b , с ) ]

a b с

EngineeringForm[N[12*10 A 29] ]

1.2xl0 30

Format [Exp [x ^ 2 ] /а]

e x 2 /a

FortranForm[Exp[x] ^ 2/а]

E**(2*x)/a

HoldForm[Exp[x] ^ 2/а]

e 2x /a

NumberForm[N[Exp[2]] ,15]

7.38905609893065

OutputForm [Exp [x]^2/a]

e 2x /a

TeXForm[Exp [x]^2/a]

\frac{e^{2\,x}}{a}

Scientif icForm[12*10 ^ 5]

1200000

Приведем еще несколько примеров использования различных форм вывода (здесь содержимое ячеек вывода дано под содержимым ячеек ввода):
FullForm[Exp[x]^2/а]
Times[Power[a, -1, Power[E, Times[2, х]]]
TreeForm[Exp[x]^2/а]
Times[ , ] Power[a, -1] Power[E, | ]
Times[2, x]
PaddedForm[(х^З+2*х^2+3*х-1)/ (x-1) ,3]
(2 3 -l+3x+2x +x)/(-1 + x)
PrecedenceForm[12*b/c,5]
a + 12 b/c
SequenceForm[Exp[x]^2/a]
E^2 x/a
TableForm[{{"x","y"},{l,2},{3,4},{5,6}}]
x у
1 2
3 4
5 6
Prefix[f[x^2]]
2
f@ (x )
Unevaluated[Exp[х^(a/b)]/x/a]
a/b
Exp[x ] Unevaluated[Exp[x^a/b]/x a]

Статьи по теме

Комментарии запрещены.