Прохоров Г.В., Леденев М.А., Колбеев В.В. Пакет символьных вычислений Maple V (1185912), страница 13
Текст из файла (страница 13)
Стрннговские В среде Мар!е Ч определены тип агг(пя и тип паве. Выражение типа Фгг(пя может содержать цифры и буквы, строчные и прописные. Строка с двух сторон должна быть окружена символом ' . Если же в строку требуется вставить символ ' то его надо удвоить. > гаг:='ФФ" я а агг(па'; ~гаг:= 1~ 'я а агг(лп > Фуре(гаг,агггпа); > Фуре(гаг,ванге); > Фуре(а*Ь,ягг(па); (а(ге Одиночные символы можно не заключать в кавычки > сЬаг:=с; сваг .= с > сЬаг:='с'; сваг:= с Из строки можно выделить подстроку: > япЬягг(па(аЬсде(аЬ,З..5); Определим длину строки: > 1епаФЬ(аЬсФ(е(); !42 Глава 14 Для того, чтобы склеить несколько строк, служит команда сац > сат(123,аЬс,454); 123абс45б Можно организовать поиск в строке: > ЯеагсЬТех1(их,1нтихуа); Команда ЯеагсЬТехг различает строчные и прописные буквы: > ЯеагсЬТехг(%х,тптихуг); 14.1.6.
Индексные переменные Могут использоваться везде, где возможно использование переменных типа паве. Параметр вызова индексной переменной: симя> ( <ряд выражений> ) Например, выражение > Ь(1'р=10; Ь:= 10 1 создает таблицу для Ь и значению 10 присваивается индекс 1. Индексные переменные удобно использовать, к примеру, для нахождения сумм: 143 Типы данных > анаЬ(Ц+20+Ь(1Ц; а — — 30+ Ь 11 14,1.7. Области В среде Мар!е Ч определен такой тип данных, как области (гапбе). Синтаксис описания: выражение..выражение Выражение типа гапбе имеет два операнда.' левое выражение и правое выражение. Между ними стоит оператор "..'" . Но следует отметить, что область 1..3 не эквивалентна 1,2,3.
Примеры: > яшв(1,1=1..3); > 1..3; > $1..3; 1, 2, 3 > а.(1..3); а1, а2. аЗ 14.1.8. Отношения В среде Мар)е Ч под отношением понимают выражение, разделенное специальными операторами, называемыми операторами отношения: <, «-", », =, =, и <> . К примеру, в выражении ш+п>=Ь можно вычислить количество операндов, а также извлечь из выражения его составляюшие. 144 Глава 14 > В=пг+п<=Ь! ,Г:=гл+и </с Вычислим количество переменных в правой части данного выражения: > поря("); Удобны операторы гЬз и !Ьз для выделения правой и левой частей выражения.
> у = а*х"2+ Ь; у=ах +Ь 2 > гЬя("); ах +Ь > )Ья(пи), 14.1.9. Булевские выражения Для логических операций в среде Мар!е предусмотрен специальный тип данных: 'Ьоо1еап'. Также специальные зарезервированные слова 1гие и (а!зе используются для работы с булевскими выражениями. В булевских выражениях можно использовать следующие операторы: '=', '<>', '«', '<=', 'апб', 'ог', 'по1' Для работы с булевскими выражениями предусмотрена команда еуа!Ь: Типы данных !45 > х=х; хнх >ега!Ь( )> > ТоВе ог пог ТоВе; > Воунхпог Яг!; Воу — — пег Иг! > Сзн( апб Воу; Га)хе 14.2.
Позлвментная обработка, подстановки и подвыражения 14.2.1. Позлементнаа обработка Функция щар — действие над всеми злементами некоторого выражения. Вызов функции: вар(Гсп. ехрг, ага 2, ..., ага и) Параметры функции: Гсп — процедура или имя; ехрг — любое выражение; аг~ ( — (необязательный параметр) дополнительные аргументы.
К примеру, найдем модуль от всех злементов списка Гх > 1.:и( — 1,2, — 3, — 4,5(; Л .= ~-1, 2, -3, -4, 51 (1,2,3,4,51 > гоар(аЬз,(,); С помощью функции щар можно применить процедуру Гоп к операндам выражения ехрг. 146 Глава !4 Возведем в квадрат все элементы этого списка: > шар(х — >х "2,Ь); [1,4, 9, 16, 25) Проинтегрируем все элементы списка 1.: > впар(1пвейгаве,Ь,х)! [-х, 2х, -Зх,-4 х, 5х) 14,2.2. Подстановки При выполнении различных математических операций возникает необходимость подставить одно выражение в другое, а также проверить полученное решение путем подстановки его в исходное равенство.
Для этого служит команда зиЬк Вызов: зиЪз(з 1,з 2,...,з п,ехрг) Параметры; з 1,... — уравнение, или множество, или список из уравнений; ехрг — любое выражение. Прн этом в 1,...,з и подставляются в выражение ехрг. Пример: > звЬз( х=г" (1!3), З*хЧп(х~З) ); Другой пример использования функции зоЬз — проверка полученного решения: Типы данных > еав:ж (2*х*у = 1, х+ в = О, 2"х — 3*в = 2»; еде:= (2 ху= 1, х+я= О, 2 х — Зя= 2) > В=во!ге(ег(в,(х,у,в»); 2 5 -21 х=-,у=-,я= — г 5' 4' 5 ) Проверим, правильно ли мы решили эту систему; > внЬв((,ейв); (2=2,1=1,о=о) 14.2.3.
Подвыражения В среде Мар!е Ч возможны различные операции над выражениями, в том числе и выделение подвыражения. Например, команда ор. Вызов команды: ор((,е) ор(Ц,е) ор(е) Параметры: 1,» — положительные целые числа, определяющие позицию операнда в выражении; е — любое выражение. > Й=(х,у,ф > ор(3,(); Для того, чтобы заменить некоторый операнд в выражении, служит команда впЬвор. Вызов команды: зазор( ец1, ег(2, ..., ег)Х, ехрг ) Параметры: еЧ1 — выражение (необязательное) вида спшп1> = сехрг1>; 148 Глава 14 <пшп1> — положительное целое; <ехрг1> — выражение; ехрг — выражение.
Заменим в определенном нами ранее списке Ве[х,у,г] третий элемент этого списка на г< > япЬяор(З=т,()1 [х,у. и] Удалим его: > явЬяор(З=ЖЛХ,(); то.З. Определение типов в Мер!е Для проверки принадлежности определенного выражения конкретному типу служит функция 1уре. Вызов функции: 1уре(х, 1) Параметры: х — любое выражение; — имя типа или множество имен типов. Функция гуре — булевская функция, которая возвращает значение ггце, если х принадлежит типу 1,и Га!зе — в противном случае.
В том случае, если 1 — множество типов, то возвращаемое функцией 1уре значение будет 1гце, если х принадлежит хотя бы одному типу иэ множества. Примеры: > (уре(с+о,ро1упов); Типы данных > гуре(5,[Ггасбоп,щ(еВег[); > Гуре(99(55,Воаг); Ге[ее Для определения типов в Мар!е служит функция ччЬаггуре, Вызов функции; ччЬапуре(ехрг) Здесь ехрг — любое выражение. Функция возвращает имя типа данных выражения, которое одним из следующих: 1 + <= <> л аггау ехргзег! ()оаг 1пг(екель !пге5ег 1пп ргосег(цге зег)ез зе! плеча! может быть < апг) Гцпсбоп ог гаЬ)е Ггасйоп по! ягг!Пя Примеры: > иЬаггуре(0.5); > иЬануре(Г); г(г(ла > иЬаггуре([х У!)1 (ге( Функция Ьаагуре — проверка на указанный тип. Вызов функции: Ьазгуре( ехрг, г ); Параметры: ехрг — любое выражение; г — имя типа данных.
Булевская функция Ьазгуре возвращает значение ггце тогда и только тогда, когда выражение ехрг имеет подвыражение типа г. 150 Глава 14 Примеры: > Ьаягуре( (х+у),'+' ); > Ьаягуре( (х+у)'(1/2*к+у), 1гаст(оп ); > Ьаягуре( х+7*у, (гас(1оп ); 14.3.1. Простые типы К простым типам в Мар!е можно отнести; системный и процедурный типы, константы.
К системным типам в Мар!е можно отнести все типы, описанные в п. 10.1. Определение принадлежности к системным типам было рассмотрено в п. 10.3. Для определения принадлежности выражения к процедурному типу служит функция гуре!ргосег(иге, Формат вызова функции: гуре(ехрг,ргоседпге) Здесь ехрг — любое выражение. Эта команда проверяет принадлежность выражения ехрг к процедурному типу.
> 1уре(я(п,ргосейпге); > й=ргос(х) х'2 епй; у':=ргос(х) х 2еЫ > 1уре(Г,ргоседпге); 151 Типы данных > Суре(х*2,ргоседпге); Для того чтобы определить, является ли заданное выражение константой, служит команда Суре/сопв1ап1, Формат вызова команды: 1уре(х,сопзгап1); Здесь х — любое выражение.
Примеры: > Суре(7, сопяСап1); > Суре((пйп(Су,сопяСап1); > Суре(х"4,сопвСап1); Еа)яе 14.3.2. Структурные типы Для объяснения понятия структурного типа в Мар!е рассмотрим такой пример. Введем множество 1.=(1,2,3); > Ь=(1,2,3); Е:=(1,2,3) Определим, к какому типу принадлежит Ь: > нйануре(1.); 152 Глава !4 Однако множество может состоять не только из целых чисел, но и из дробных и даже из строк. Чтобы узнать, из чего же состоит множество 1, воспользуемся такой командой: > гуре(Ь,зег((пгеаег)); Теперь мы уверены, что 1.
— множество из целых чисел, а не из каких- либо других: > гуре(1.,яег((гасг(оп)); рассмотрим другие примеры: > гуре(1(1,2,3),уппсг(оп((пгейег)); > 1уре(у"( — 2),валге*(п1ейег); > 1уре((у,Ц,1(яг((пгейег)); Ызе > гуре((у,Ц,1(зг((пагае (п1ейег) )); 14.4. Преобразование типов Для преобразования выражения из одного типа в другой служит функция сопчег1. Вызов функции (в общем виде); сопчеп(ехрг, Гопп, агйЗ, ...) Параметры: ехрг — любое выражение; Типы данных — имя; — другие аргументы (необязательный параметр). Примеры: Преобразуем число 1.2345 в дробь (т.е.
в тип 1гасбоп): > сопгегг(1.2345,1гасбоп); Преобразуем обратно; > сопгегт(2469/2000,Поат); 1. 234500000 Можно преобразовывать числа Ь двоичную форму: > соптегг(12,Ь(лагу); 1100 > сопгегг( — 1.234,Ь(лагу); -1 001110111 Преобразуем двоичное число ! 100 в десятичную нотацию; > сопгегг(1100,4ес1гпа!,Ь(лагу); 12 Для преобразования радиан в градусы служит следующая команда: > соптегг(РУ2,де0геев); 90 Ыелгеее Гоггп агяЗ, ...
2469 2000 154 Глава !4 Градусы в радианы: > сопчегг(90*йеВгеея,гайапя); 1 - зг 2 Для преобразования в список служит команда сопчегИЬ1. Причем преобразуемое выражение должно принадлежать одному из следующих типов: таблице. вектору, множеству или выражению. Вызов: сопчегГ( <ГаЫе>, Наг ) сопчегг( <чесгог>, Йь ) сопчегг( <ехргеяя(оп>, 1(а! ) > Ана аггау([х,у,а]): > сопчегг(А,)Ьг); !х,у,я] > сопчегг(г+я — 1,1(аг); (г, а, -г] > В л !аЫе(](3)=123,(7)=456]): > спичей(В,Вяг); (123, 456] > сопчегг((х,у),1Ьг); Для преобразования в список нз списков служит команда спичей(а!1(яп Причем преобразуемое выражение должно быть массивом или списком. Вызов: сопчеп( <аггау>, 1(я!1(яг ) сопчегт( <1!зг>,!1я11(я! ) Типы данных с55 > А ив аггау(Ц1,2[,[3,4Ц): > сопчегс(А,!!вс!!вс); [[1, 2[, [3.4[] > В ив [4=12,2=7,1=8,3=6[: > сопчегс(В,Ввс!!вс); [8,7, б, 12[ Преобразование во множество осуществляется командой сопчегс!вес.
Преобразуемое выражение должно принадлежать одному из следующих типов: таблице, массиву, списку или выражению. Вызов функции: сопчегс( <саЫе>, вес ) сопчегс( <аггау>, вес ) сопчегс( <ехрг>, веС ) > А пв астау(1..2,1..2,Ц1,2[,[3,4Ц): > сопчегС(А,веС); (1,2,3,4) > сопчегс(х+у — в,веС); (-г,у, х) Для преобразования в таблицу служит команда сопчегс(оЬ)есс, саЫе), где оЬ[есс — список или массив. > сопчегс(Ц1,2[,[3,4Ц,саЫе); саЫе([ (1,1)=1 (2,1)= 3 (2, 2) =4 (1,2)=2 [) !56 Глава 14 > сопгегг(!!па!а!вес!ог)(341,х,х"2)),(аЫе); !аЫе(( 2=х 3 1 )) > А я !!па!я(гапйпгагг!х)(2,2,яугагае!г!с): > сопгегг(А,(аЫе); Для преобразования сопчеггбнппя.