|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Создание своей библиотеки процедурЕсли приведенные выше примеры составления процедур кажутся вам простыми, значит, вы неплохо знаете программирование и, скорее всего, уже имеете несколько полезных процедур, которые вы хотели бы сохранить — если не для потомков, то хотя бы для своей повседневной, работы. Сделать это в Maple 7 довольно просто. Прежде всего надо определить имя своей библиотеки, например mylib, и создать для нее на диске каталог (папку) с заданным именем. Процедуры в Maple 7 ассоциируются с таблицами. Поэтому вначале надо задать таблицу-пустышку под будущие процедуры: > restart; > mylib:=tab1e(): mylib:= table([]) Теперь надо ввести свои библиотечные процедуры. Они задаются с двойным именем — вначале указывается имя библиотеки, а затем в квадратных скобках имя процедуры. Для примера зададим три простые процедуры с именами fl, 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: Рекомендуется тщательно проверить работу процедур, прежде чем записывать их на диск. Ограничимся, скажем, такими контрольными примерами: Можно построить графики введенных процедур-функций. Они представлены на рис. 7,4. Рис. 7.4. Построение графиков процедур-функций f1, f2 и f3 С помощью функции with можно убедиться, что библиотека mylib действительно содержит только что введенные в нее процедуры. Их список должен появиться при обращении with (mylib): > with(mylib); [f1,f2,f3] Теперь надо записать эту библиотеку под своим именем на диск с помощью команды save: > save(mylib,`c:/ mylib.m); Обратите особое внимание на правильное задание полного имени файла. Обычно применяемый для указания пути знак \ в строках Maple-языка используется как знак продолжения строки. Поэтому надо использовать либо двойной знак \\, либо знак /. В нашем примере файл записан в корень диска С. Лучше поместить библиотечный файл в другую папку (например, в библиотеку, уже имеющуюся в составе системы), указан полный путь до нее. После всего этого надо убедиться в том, что библиотечный файл записан. После этого можно сразу и считать его. Для этого вначале следует командой restart устранить ранее введенные определения процедур: > restart; С помощью команды with можно убедиться в том, что этих определений уже нет: > with(mylib): Error, (in pacman:-pexports) mylib is not a package После этого командой read надо загрузить библиотечный файл: > read('c:/mylib.m'); Имя файла надо указывать по правилам, указанным для команды save. Если все выполнено пунктуально, то команда with должна показать наличие в вашей библиотеке списка процедур fl, f2 и f3: > with(mylib): [f1. f2. f3] И наконец, можно вновь опробовать работу процедур, которые теперь введены из загруженной библиотеки: > fl(x): sin(x) + cos(x) > simplify(f2(y}); 1 > f3(0): 1 > f3(1.); .8414709848 Описанный выше способ создания своей библиотеки вполне устроит большинство пользователей. Однако есть более сложный и более «продвинутый» способ ввода своей библиотеки в состав уже имеющейся. Для реализации этого Maple 7 имеет следующие операции записи в библиотеку процедур si, s2,... и считывания их из файлов filel, file2,...: savelib(s1. s2,.... sn, filename) readlib(f. file1. file2....) С помощью специального оператора makehelp можно задать стандартное справочное описание новых процедур: makehelp(n.f.b). где n — название темы, f — имя текстового файла, содержащего текст справки (файл готовится как документ Maple) и b — имя библиотеки. Системная переменная libname хранит имя директории библиотечных файлов. Для регистрации созданной справки надо исполнить команду вида: libname:-libname. '/mylib": С деталями применения этих операторов можно ознакомиться в справочной системе. К созданию своих библиотечных процедур надо относиться достаточно осторожно. Их применение лишает ваши Maple-программы совместимости со стандартной версией Maple 7. Если вы используете одну-две процедуры, проще поместить их в те документы, в которых они действительно нужны. Иначе вы будете вынуждены к каждой своей программе прикладывать еще и библиотеку процедур. Она нередко оказывается большей по размеру, чем файл самого документа. Не всегда практично прицеплять маленький файл документа к большой библиотеке, большинство процедур которой, скорее всего, для данного документа попросту не нужны. Особенно рискованно изменять стандартную библиотеку Maple 7. Впрочем, идти на это или нет — дело каждого пользователя. Разумеется, если вы готовы создать серьезную библиотеку своих процедур, то ее надо записать и тщательно хранить. С Maple 7 поставляется множество библиотек полезных процедур, составленных пользователями со всего мира, так что и вы можете пополнить ее своими творениями (см. урок 14). Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |