АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Внутренняя структура объектов Maple. Подстановка и преобразование типов

Читайте также:
  1. II. СТРУКТУРА КВАЛИФИКАЦИОННОЙ РАБОТЫ
  2. III. Внутренняя форма слова. Мотивация номинации.
  3. III. СТРУКТУРА И ПОРЯДОК ФОРМИРОВАНИЯ СТУДЕНЧЕСКОГО СОВЕТА
  4. III. Структура Клуба
  5. III. СТРУКТУРА, РУКОВОДЯЩИЕ И КОНТРОЛЬНЫЕ ОРГАНЫ КПРФ
  6. IV. ОРГАНИЗАЦИОННАЯ СТРУКТУРА ПРОФСОЮЗА
  7. IY. ОРГАНИЗАЦИОННАЯ СТРУКТУРА И ОРГАНЫ УПРАВЛЕНИЯ КЛУБА
  8. VI. ОРГАНИЗАЦИОННАЯ СТРУКТУРА ПАРТИИ.
  9. А) Определить наличие на предприятии опасных веществ, опасных режимов работы оборудования и объектов.
  10. А) структура текстів драм
  11. Активные операции коммерческих банков, их структура.
  12. Анимация графических объектов

Преобразования чисел с разным основанием

В Maple возможна работа с числами, имеющими различное основание (base), в частности, с двоичными числами (основание 2 — binary), восьмеричными (основание 8 — octal) и шестнадцатиричными (основание 16 — hex). Функция convert позволяет легко преобразовывать форматы чисел:

> convert(12345,binary);

> convert(%,decimal,binary);

> convert(12345,octal);

> convert(123456,hex);

E240

> convert(%,decimal,hex);

Помимо приведенных вариантов функция convert имеет еще ряд других форм. С ними можно познакомиться с помощью справки по этой мощной функции. В дальнейшем будет приведен ряд других применений этой функции.

Контроль за типами объектов

Выражения и их части в Maple рассматриваются как объекты. В ходе манипуляций с ними важное значение имеет контроль за типом объектов. Одной из основных функций, обеспечивающих такой контроль, является функция whattype(object), возвращающая тип объекта, например string, integer, float, fraction, function и т.д. Могут также возвращаться данные об операторах. Примеры применения этой функции даны ниже (файл control):

> whattype(2+3);

Integer

> whattype(Pi);

Symbol

> whattype(123./5);

Float

> whattype(1/3);

Fraction

> whattype(sin(x));

Function

> whattype([1, 2, 3, a, b, c]);

List

> whattype(a+b+c);

+

> whattype(a*b/c);

*

> whattype(a^b);

^

> whattype(1+2+3=4);

=

С помощью функции type(object,t) можно выяснить, относится ли указанный объект к соответствующему типу t, например:

> type(2+3,integer);

True

> type(sin(х),function);

True

> type(hello,string);

False

> type("hello",string);

True

> type(1/3,fraction);

True

При успешном соответствии типа объекта указанному (второй параметр), функция type возвращает логическое значение true, в противном случае — false.

Для более детального анализа объектов может использоваться функция hastype(expr, t), где expr — любое выражение и t — наименование типа подобъекта.

Эта функция возвращает логическое значение true, если подобъект указанного типа содержится в выражении expr. Примеры применения этой функции даны ниже (файл control):

> hastype(2+3,integer);

True

> hastype(2+3/4,integer);

False

> hastype(2*sin(x),function);

True

> hastype(a+b-c/d,`+`);

True

Еще одна функция — has(f,x) — возвращает логическое значение true, если подобъект х содержится в объекте f, и false в ином случае:

> has(2*sin(х),2);

True

> has(2*sin(x), `/`);

False

> has(2*sin(x),3-1);

True

Следует отметить, что соответствие подобъекта выражения указанному подобъекту понимается в математическом смысле. Так, в последнем примере подобъект «3-1», если понимать его буквально, в выражении 2*sin(x) не содержится, но Maple-язык учитывает соответствие 3-1=2, и потому функция has в последнем примере возвращает true.

Функция has может использоваться для выявления той или иной математической операции, оператора или функции. Однако надо соблюдать определенные правила, поскольку выражение, анализируемое функцией has оценивается и исполняется. Внимательно проанализируете приведенные ниже примеры:

> has(2*sin(2),sin);

True

> has(2*sin(2),'sin');

True

> has(2*sin(2.), 'sin');

False

Здесь надо учесть, что выражение 2*sin(2) после оценки и исполнения не меняется, поскольку Maple, при целочисленном аргументе функции синуса, не вычисляет ее и вычисленное выражение совпадает с исходным и содержит функцию синуса. Однако sin(2.) уже вычисляется и становится числом. Именно поэтому в последнем примере функция sin уже не обнаруживается. Подобное имеет место и в ряде других примеров с функцией интегрирования:

> has('int(х^2,х)',int);

True

> has(int(х^2,х),int);

False

> int(х^2,х);

> has(int(х^2,х), х^3/3);

rue

Столь же поучителен пример с идентификацией функции интегрирования. Так, has(int(х^2, х), int); дает false, поскольку интеграл оценивается и вычисляется, что ведет к подмене выражения на х^3/3 уже не содержащего признаков интегрирования. Это и поясняют два последних примера, в которых вычислено значение интеграла и функция has дает значение true для значения интеграла. В тоже время заключение int(x^2,x) в апострофы позволяет найти имя функции интегрирования int, поскольку исходное выражение в этом случае представлено в неисполняемой форме и содержит обращение к этой функции.

Еще одна иногда полезная функция контроля выражений depends(f,x) возвращает true, если х входит в f и false в противном случае. При этом надо также помнить, что функция (выражение) оценивается и исполняется. Следующие примеры хорошо иллюстрируют сказанное:

> depends(2+2*sin(x),х);

True

> depends(int(х^2,х),х);

True

> depends(int(х^2,х=0..1), х)

False

В последнем примере вычисленное выражение это уже просто число, в нем х не содержится, а потому и получено значение false.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)