Операции ввода и вывода
Считывание и запись программных модулей
В уроке 2 рассматривалась работа с файлами документов. Вводимые в текущий документ программные модули хранятся вместе с ним, так что при отказе от загрузки какого-либо документа все его программные блоки не могут использоваться в других документах. Кроме того, порой неудобно загружать объемный документ ради использования одного или нескольких модулей, например процедур. Поэтому в Maple 7 введены средства, позволяющие записывать нужные модули (в том числе результаты вычислений) на диск и считывать их в случае необходимости.
Для записи на диск используется оператор save:
- save filename – запись всех определений текущего файла под именем filename;
- save name_1, name_2,… .name_k, filename – запись избранных модулей с именами name_1, name_2,…, name_k под именем filename.
Считывание имеющегося на диске файла filename осуществляется оператором read:
read <filename>
При считывании все имеющиеся в файле определения становятся доступными для рабочих документов Maple. При записи файлов отдельных определений используется специальный внутренний Maple-формат файлов. Для загрузки файлов типа *.m из стандартной библиотеки используется функция readlib. А для записи файлов в качестве библиотечных достаточно в имени filename оператора save указать расширение .т. Разумеется, можно считывать такие файлы и оператором read, указав в имени файла расширение .m:
> save my_proc,4myJib.nT: # запись файла пу_ргос и > # библиотечного файла my_lib.m: > load 'myjlib.m': # считывание библиотечного файла > # myjib.m.
Создание своей библиотеки процедур
Если приведенные выше примеры составления процедур кажутся вам простыми, значит, вы неплохо знаете программирование и, скорее всего, уже имеете несколько полезных процедур, которые вы хотели бы сохранить – если не для потомков, то хотя бы для своей повседневной, работы. Сделать это в Maple 7 довольно просто.
Прежде всего надо определить имя своей библиотеки, например mylib, и создать для нее на диске каталог (папку) с заданным именем. Процедуры в Maple 7 ассоциируются с таблицами. Поэтому вначале надо задать таблицу-пустышку под будущие процедуры:
> restart; > mylib: = table(): mylib: = table([ ])
Теперь надо ввести свои библиотечные процедуры. Они задаются с двойным именем – вначале указывается имя библиотеки, а затем в квадратных скобках имя процедуры. Для примера зададим три простые процедуры с именами f1, f2 и f3:
> mylib[fl]: = proc(x: Anything) sin(x)+cos(x) end: > mylib[f2]: = proc(x:anything) sin(x)^2+cos(x)^2 end: > mylib[f3]: = proc(x::anything) if x=0 then 1 else sin(x)/x fi end: