Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

Дьяконов Владимир Павлович

Шрифт:

> alias(BJ=BJ);

Fx

> BJ(0,1.);

BJ(0, 1.)

Обратите внимание на то, что BJ исчезло из списка переназначений и функция BJ(0,1.) уже не вычисляется, поскольку ее больше нет.

10.7.2. Модули

Модули придают языку программирования Maple некоторые свойства языков объектно-ориентированного программирования. Они служат для реализации абстрактного типа данных на основе инкапсуляции — объединения данных и процедур их обработки. Модули задаются ключевым словом module с пустыми скобками и завершаются словами end module или просто end:

name := module

export eseq; local lseq; global gseq;

option optseq; description desc;

 Тело модуля

end module (или просто end)

Хотя структура модуля во многом напоминает структуру процедуры, включая объявление локальных и глобальных переменных, параметров и описаний, между ними есть существенная разница:

• модуль не имеет списка входных параметров;

• в модуле могут размещаться данные;

• модули могут использоваться для создания пакетов процедур, доступ к которым обеспечивается командой with;

• модули имеют свойства в виде локальных переменных и методы в виде процедур интерфейса модулей;

• реализация абстрактных типов данных с помощью модулей скрыта от пользователя;

• модули могут содержать оператор export eseq, объявляющий экспортируемые переменные модуля;

• для доступа к экспортируемым переменным модуля может использоваться специальный оператор «:-» (двоеточие и минус);

• модули и процедуры могут вкладываться друг в друга без ограничения уровня вложенности;

• модули могут иметь специальные конструкторы объектов.

Следующий пример демонстрирует создание модуля pt в котором заданы две операции (сложения plus и умножения times) и показан доступ к ним:

> pt:= module

export plus, times;

plus : = (a,b) -> a + b;

times := (a,b) -> a * b;

end module;

pt := module export plus, times; end module

> pt:-plus(3,5);

8

> pt:-times(3,7);

21

Детальную информацию о модулях и о конструкторах объектов можно найти в справках по ним. Некоторые пакеты уже в Maple 8 реализованы не в виде процедур, а в виде модулей (например, в виде модуля сделан пакет LinearAlgebra). В простейшем виде модули могут использоваться всеми пользователями системы Maple, но их серьезное применение (например, с целью создания полноценных пакетов Maple) требует серьезного знакомства с техникой объектно-ориентированного программирования. Такое знакомство выходит за рамки данной книги.

10.7.3. Макросы

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

macro(e1, е2, ..., en)

где е1, е2, …, en — ноль или более равенств.

В следующем примере функция numbperm с помощью макроса заменена на np:

> with(combinat, numbperm);

[numbperm]

> numbperm([1,2,3,4]);

24

> macro(np=numbperm(V));

np

> V:=[1,2,3,4];

V:= [1, 2, 3, 4]

> np(V);

24

Макросы могут быть использованы для конструирования выражений из их макроопределений.

10.7.4. Внешние вызовы

Maple имеет команду system(string), с помощью которой можно исполнить любую команду MS-DOS, записанную в виде строки string. Например, для форматирования гибкого диска из среды Maple можно использовать стандартную команду MS-DOS:

> system(`format а:`);

На экране появится окно MS-DOS с начальным диалогом форматирования диска А. Это окно показано на рис. 10.6.

Рис. 10.6. Результат выполнения команды форматирования гибкого диска

При работе в операционной системе Windows эта возможность практически бесполезна, поскольку форматирование диска с большими удобствами можно выполнить средствами Windows.

Внешние вызовы командой system куда более полезны для MS-DOS-реализаций Maple, которые кое-где используются и по сей день. Но, поскольку данная книга посвящена самым современным Windows-реализациям системы Maple, более подробное рассмотрение операций внешних вызовов не имеет особого смысла.

  • Читать дальше
  • 1
  • ...
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: