Манзон Б.М. Maple V Power Edition (Манзон Б.М. Maple V Power Edition.djvu), страница 5
Описание файла
DJVU-файл из архива "Манзон Б.М. Maple V Power Edition.djvu", который расположен в категории "". Всё это находится в предмете "компьютерный практикум по специальности" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 5 - страница
При двойном обрамлении выражения прямыми кавычками выполнение оператора задержится на два прохода и так далее. > и(хл2-х-2)е) ' гастог(х' — х — 2) ' > 'йассок(х"2-х-2)') Гасгог(х' — х — 2) > йассок(х"2-х-2)) (х + !) (х — 2) Укажем два наиболее частых случая использования прямых кавычек. Во-первых, прямые кавычки могут использоваться для отмены присваивания какого-либо значения некоторой переменной. Присваивание переменной х некоторого значения записывается при помоши оператора присваивания:=. Пусть, например > х:= 3) х:= 3 Проверим теперь значение х, введя просто > х) Мы видим.
что переменной х присвоено значение 3. Чтобы отменить это присваивание, запишем > хе= 'х'а х:=х Теперь, введя х, получим > х) Во-вторых, прямые кавычки используются внутри команд с индексными параметрами (авгп. ргойвс(), например 91 4.
Объекты Мер!е 25 Последовательности выражений Выражения не самый сложный обьект в Мар!е. Один из более сложных объектов — последовательность выражений. Последовательность выражений— просто несколько выражений, отделенных запятыми. Большинство команл требуют ввода последовательности выражений в виде параметров, и многие из них возвращают резульгат, который также включает последовательность выражений, Самый простой способ создавать последовательность выражений— просто ввести ее следующим образом.
> 1,2,3,4,5) 1, 2, 3, 4, 5 > а+Ь, Ь+с, с+6, е+й, й+дг а + Ь, 6+с, с+К е +~~+8 В качестве альтернативы имеются еще два способа создавать неявную гюследовательность выражений, Во-первых, с этой целью может использоваться оператор $ (один либо совместно с оператором диапазона, записываемым в виде многоточия ".." ).
Этот оператор создает упорядоченные последовательности. Приведем примеры: > а$6! а, а, а, а, а, а > $1..6! 1, 2, 3, 4, 5, 6 > 1л2$1=1..б) 1, 4, 9, 16, 25, 36 > 1гхеча1п (1); > 2 " 1$1=1..10! 2, 4, 6, 8, 10, 12, !4, 16, !8, 20 а,, а„а, 26 Мар)е Ч Роччег ЕбШоп Во-вторых, имеется команда аеа, которая работает следующим образом: > вец ( Х1/1 "2, 1=1 ..7 ) ) 1 2 3 24 720 1, —, —, — „—, 20, 2 3 2 5 7 > вес(о(й), Й= (в1а, сов,сан, ехр, 1а) ) т сов, — гй, 1 + (ап, ехр, а -+ 1/а Преимушество команды ве» в том, что она очень быстрая и может использоваться в ряде ситуаций для увеличения скорости вычисления.
В следующем примере показано, как последовательность выражений используется в качестве аргумента в команде пзах( ). > твах(Р1,ехр(1),сан(5"Рз./б) ) т Наборы и списки т. Наборы Набор — неупорядоченная совокупность выражений. Любое допустимое выражение может содержаться в наборе. Наборы часто используются как ввод в процедуре Мар(е и часто содержатся в выводе. Набор записывается как последовательность выражений, заключенная в фигурные скобки (). Необходимо сделать одно важное замечание, касающееся наборов — повторные элементы автоматически удаляются из набора.
Эта особенность очень удобна для программирования большого количества задач. Первый из следующих трех примеров демонстрирует это правило. > ( 1Ф 1/ 2Ф Зу 2 )/ (1, 2, 3) > [а*х, зау.натве, -234.456, 'Учебное пособие но Мвр1е!']; (тупите, а х, — 234.456, Учебное пособие по Мар(е7) > ('Ытхе', 'геб', 'теЬЫе'); (гес(, Иие, впйе) Как видно из примеров, порядок, в котором записаны элементы набора, не обязательно совпадает с порядком, в котором их воспринимает Мар/е, 4.
Объекты Мар!е 27 2. Оперирование элементами набора (команды ип(оп, )пгетвесг, тйшв! По сути, наборы можно рассматривать как множества объектов Мар!е. Так же как в теории множеств, для оперирования с наборами в Мар1е введены три основных оператора: оператор объединения (ппюп) объединяет элементы двух наборов в один (исключая при этом любые повторные элементы); оператор пересечения ()пгегвес$) создает набор, который содержит любые элементы, общие двум начальным наборам; и оператор исключения (в)ппя) — удаляет из первого набора любые элементы, содержащиеся во втором наборе.
> ( а, Ь, с, с( ) тххх(охх ( 6, е, й)у [Ь, с г'. е, д, а) > (1, 2, 3, 4, 5) 1тхЬегвесЬ (2, 4, б, 8, 10) а > (х1, х2, х3) гп(тшв (х1, у1)г [х2, хЗ) 3. Списки Списки, так же как наборы, определяются последовательностями выражений, однако списки заключаются в квадратные скобки "[]". Будучи близкими по написанию, списки и наборы существенно различаются. Списки — "хорошо упорядоченные объекты". Это означает, что порядок, в котором записан список, будет точно также восприниматься Мар1е и будет сохраняться в течение вычислений.
Другое важное отличие — повторяющиеся элементы не удаляются из списка. Далее — некоторые примеры списков: > (1, 2, 3, 4, 5, 4, 3, 2, 1]а(а, б, с, Ь, е ]( [1, 2, 3, 4, 5, 4, 3, 2, 1] [а, б, с, Ь, е] > [ ( с, а, Ф ), ( 6, о, д ), ( ш, о, и, в, е ) ]а [[с, Б а), [у, б, о), [е, и, з, т, о)[ В последнем примере кажлый из трех наборов — элемент списка. В то время как порядок элементов внутри наборов может изменяться, порядок самих трех наборов остается неизменным.
Хотя операторы объединения, пересечения и исключения не воздействуют на списки, для извлечения и манипулирования элементами списка могут использоваться команды ор и поря (смотрите далее). 28 Мар1е У Роягег Ед(т!оп 4. Оперирование элементами списка (команды ве!есЬ гетоте, х!р~ эогг) Для извлечения элементов из списка по некоторому признаку существует команда ае)есй которая по заданному правилу (логическому соотношению, являющемуся первым параметром аргумента команды) выбирает из списка (второй параметр) элементы и выводит их в той же последовательности в список.
> 1агде:иж-> 1в(х>3)т !агйе;= х -+ ья(3 < х) > Ь:=[8,2,95,Ра,в1зх(9)]! 1.:= [8, 2, 95, а, з[п(9)] > ве1есс (1агде, Ь) т [8, 95, а] Команда гешоте, наоборот, выбрасывает из списка удовлетворяющие заданно- му правилу элементы и выводит список оставшихся элементов. > гевютге(1агде,Ь) ! [2, гйп(9)[ Возможно также извлечь элементы определенного типа командой (уре: > ве1есс(гуре,Ь,зиивег1с)! [8, 2, 95] Объединение двух списков Определим два списка Х и т' > !ь:=[вец(И]зрглзве(1),1=1..6)]! Х:= [2, 3, 5, 7, 11, 13] > Т:и[вец(Ь1аош1а1(6,1),1~1..6)]) )':= [6, 15, 20, 15, 6, 1] Можно эти два списка объединить в один при помощи команды > [ор(х),ор(У) ] т [2, 3, 5, 7, 11, 13, 6, 15, 20, !5, 6, !] 4. Объекты Мер!е 29 Для объединения списков по заданному правилу применяется команда ар.
Первым параметром команды лр задается правило объединения пар элементов. Можно, например, элементы двух списков объединить попарно в список наборов (по одному элементу из каждого списка в наборе). > вар((х,у)->(х,у),Х,У)1 [(2, 6), (3, 15), (5, 20), [7, 15), [6, 11), [1, 13)[ Это правило объединяет элементы списков попарно в список списков > раке:=(х,у)->[х,у)2 Раге:= (х, у) — + [х, у[ > Р с =х5р (раке, Х, Х) г Р:= Ц2, 6], [3, 15[, [5, 20[, [7, 15[, [11, 6), [13, 1Ц Такой список пар списков применяется для построения графика по заданным точкам плоскости (рис. 5).
> раас(Р)г 2 4 В 8 10 12 Рис. 5 ЗО Мар[е )г Рохвег Едвюп Еще два примера иллюстрируют применение знака конкатенации > ххр((х,у)->х.у, [а,Ь,с,о,е,й], [1,2,3]) г [а!, Ь2, сЗ[ > а1р((х,у)->х.у, [а,Ь,с,о,е,к], [1,2,3],5) т [а1, Ь2, сЗ, д5, е5, [5[ Сортировка списка по заданному правилу. В этой команде список является первым параметром аргумента, а правило — вторым. > еог~([3.12,1,1/2],(х,у)->ехга1Ь(х>у))] [3.!2, 1, [/2[ > Ьй:=(х,у)->1в(х<у)) Ь|:= (х, у) -+ В(х < у) > аох~([4.3,Р1,2/З,е1хх(5)],Ы)) [в[п(5), 2/3, в, 4.3[ Операторы присваивания и уравнения Мы уже встречались ранее с оператором присваивания ":=", который используется для присваивания значения некоторому имени.
Этот раздел объясняет различие между оператором присваивания, обозначаемым ":=" (символ двоеточия, сопровождаемый знаком равенства =), и оператором уравнения, обозначаемым знаком равенства =, Следует сделать еще несколько замечаний относительно оператора присваивания. При использовании оператора присваивания Мар!е помнит только последнее присвоенное значение для любой переменной. Если вы присвоите переменной х значение 5, а потом — значение 75, то запомнится только последнее присваивание. Вы можете переопределить любое использованное вами имя для команды или другого объекта, однако Мар/е не позволит вам использовать имя для переменной, если оно используется в качестве имени однои из встроенных команд, функций или констант Мар/е.
Имена этих объектов защищены и вы получите сообщение об ошибке. Кроме того, можно, используя команду рго(ес$(имя) защитить любое введенное вами имя. Оператор уравнения (знак равенства "="), в отличие от рассмотренного выше оператора присваивания, просто связывает между собой некоторые переменные и значения выражения. Уравнения не присваивают явных значений переменным, которые они содержат. Например: 4. Объекты Мар(е 31 >х=у+Зг х=у+ 3 > хг х > уа Как видите, переменным х и у ничего не присваивается. Оператор "=" чаше всего употребляется или в параметре команды Мар(е илн в выводе результата. Очень полезное семейство команд, использующих оператор "=", — команды решения уравнений различного вида: е во!те предназначена для аналитического решения линейных и нелинейных уравнений, неравенств и систем; е Ьо!те предназначена для численного решения линейных и нелинейных уравнений, неравенств и систем; е аво)те решает набор обыкновенных дифференциальных уравнений; е гво1те решает набор рекуррентных уравнений.
Приведем примеры. > во1в:= во1че((х+У=З, х-у=1), (х, у))) ю(з:= (у= 1, х= 2) > хг > Уг Полученное решение — набор уравнений для определения переменных. Если имеется много решений, они все будут получены. В то же время переменным х и у в вышеупомянутом примере значения решений не присваиваются. Для присваивания решений исходным переменным нужно использовать команду ава(йв, которая в уравнении (или наборе уравнений) заменяет каждый оператор "=" на оператор ":=*'. > аввадхз(во1в) г > хт уг > х: 'х'г х:=х 32 Мер!е 1/ Ропгег ЕдШоп у /уФ У:= У Другое частое использование знака равенства — в операторах булевых (логических) выражений. Когда необходимо выяснить характер зависимости между значениями двух переменных, оператор "=" может использоваться для проверки равенства.
Другие булевы операторы сравнения —; «, =, <>, апд, ог, по1. Команда ета1Ь проверяет, является ли булево соотношение истинным или ложным. Приведем примеры. > еча1Ь ( 31 = 41/2 "2 ) т пие > еча1Ь ( 157/50 > 22/7 )) /а!зе > еча1Ь ( 1архыпе (5) атх1 1архыпе (541) )т ггие Функции Мар!е имеет несколько способов прелставления функции. Во-первых, если мы какому-либо выражению присвоим имя, то фактически присвоенное имя является функцией переменных, стоящих в выражении. Например > р:=х"2+2*х+1: > Рт х'+ 2х+ 1 При помощи оператора присваивания;= в строке 2 мы присвоили переменной р значение многочлена х'+ 2 х + 1. Теперь, просто введя присвоенное имя р в строке 3, мы получили значение этого многочлена. В то же время переменная х осталась незаданной, что легко проверить вводом хт Теперь, если мы введем > х:=2/ х:= 2 4.