Дьяконов В.П. Maple 9.5 и 10 в математике, физике и образовании (1185901), страница 19
Текст из файла (страница 19)
Примеры применения этих функций (в виде продолжения ранее приведенных примеров) представлены ниже: > ясг:-"Не11о!") згг:= "Не))ог' > 1епосп(яег) > зоъясгзпо(ясг,1..3); Не1 > зсЪзсгхпч(ясг,4..6)г 1о! > з:=сас("Не11о"," пу"," Гг1епо! "); з:= "Не!(о п)у Гпепд" > Яеагсьтехс(еу, я) г > зз:= "Не11о "( ("ву Гг1епа! м:=:Не11о ту рнер.'" > яеЧ("Иаве"!~1,1 1..4)г "Ъап)еГ', 'Ъагпер, 'Ъап)е(", 'Ъагпер Эти функции дают достаточно средств для обработки данных строкового типа, которые можно применять не только для создания текстовых комментариев, но и для управления вычислительным процессом в программах.
2.5.6. Преобразование строки в математическое выражение Часто возникает необходимость в интерактивном вводе математических выражений. Для ввода с запросом выражения используется функция геаг(в(а((рго(п(), где рго(п( — строка с текстовым комментарием. Примере ее применения дан ниже: > у:яхеаоясас('Введите выражение '); Введите выражение азх" 2+Ь; у:= ах~ +Ь Альтернативой может стать ввод строкового выражения с последующим преобразованием его в математическое выражение с помощью функции рагве: > я:='2+3 5'; з:=2+3*5 2.6.
Переменные и их применение > еча1п!а) > рагае !%) 17 Обратите внимание на то. что функция еча)п не смогла вычислить строковое выражение '2+3, поскольку оно не является числовым типом данных. Однако функция рагве преобразовала это выражение в числовое, что и привело к его вычислению. 2.6. Переменные и их применение 2.6.1. Типы переменных Как следует из самого названия, переменные — это объекты, значения которых могут меняться по ходу выполнения документа. Пока мы рассматриваем лишь глобальные переменные, доступные для модификации значений в любом месте документа. Тип переменной в системе Мар!е определяется присвоенной ей значением — это могут быть целочисленные (!и!едег), рациональные (габопа1).
вещественные (геа!), комплексные (соп)р!ех) или строчные (в1ппд) переменные и т. д. Переменные могут также быть символьного типа (их значением является математическое выражение) или типа списка (см. далее). Для явною указания типа переменных используется конструкция паве:гсуре где пате — имя (идентификатор) переменной,!уре — тип переменной, например, целочисленный (!п)вдег), вещественный с плавающей точкой (йоа1), с неотрицательным значением (поппед), комплексный (соп)р!ех) и т. д. 2.6.2.
Назначение переменным имен Переменные задаются своим именем — идентификатором, который должен начинаться с буквы и быть уникальным. Зто значит, по ключевые слова языка Мар)е нельзя использовать в качестве имен переменных. Хотя имена ряда команд и функций можно использовать в качестве идентификаторов переменных, делать это крайне нежелательно. Ограничений на длину идентификатора практически нет — точнее, она не должна превышать 524 275 символов! Так что сложностей с подбором идентификаторов для переменных у вас не будет. Имена переменных могут содержать одну букву (например, х, г' или Е), либо ряд букв (Хп)1п или Х)пах).
В любом случае имя переменной надо начинать с буквы. Некоторые символы, например знак могут использоваться в именах (например, Наг 1, Чаг 2). Нельзя, однако. вводить в имена переменных знаки, обозначающие операторы — например, а/Ь или а-Ь будет истолковано как деление а на Ь или вычитание из переменной а переменной Ь. Имена могуг задаваться в обратных апострофах. При этом они просто тождественны именам без апострофов: > чаг1:=123гчагЗ:='яе11о'г чаг1:= 123 чаг2:= Недо 134 Глава 2. Типы даппых и работа с пима > 'иах1'г'чае2'г 123 Нейо Строчные и прописные буквы в идентификаторах различакпся, так что Чаг1 и иаг1 — это разные переменные. Для проверки предполагаемого имени на уникальность достаточно выполнить команду?пагпе, где пагпе — выбранное имя. Если при этом откроется окно справки с этим именем, значит, оно уже использовано в Мар1е.
Лучше воздержаться от его применения, так как связанная с этим именем команда или функция перестает работать, как только это имя закрепляется за какой-либо переменной. 2.6.3. Присваивание переменным значений Поскольку Мар!е 9.5 прежде всего система символьной математики, то по умолчанию любые переменные рассматриваются как объекты символьного типа. Благодаря этому такие переменные могут фигурировать в математических выражениях, (таких как ьпл(Х)/Х, без их предварительного объявления. В отличие от обычных языков программирования такое использование переменных не влечет за собой появления сообщений об ошибках и является более естественным. Для присваивания переменным конкретных значений используется комбинированный символ присваивания «=», например: п:=1 — переменной и присваивается целочисленное значение 1; х:=123.456 — переменной х присваивается вещественное значение 123.456: ул»17/19 — переменной у присваивается рациональное значение 17/18; пагпе:='Рйег — переменной пате присваивается строковое значение 'Рйег; ехрг:=2"Р!/3 — переменной ехрг присваивается значение выражения 2л/3; Чз»[1,2,3[ — переменной Ч присваивается значение списка чисел [1,2,3[; Мз»[[1,2,3),[4,5,6)) — переменной М присваивается значение двумерного массива; б=х->х"2 — переменной ( присваивается значение функции пользователя ((х)=х"2.
Правая часть выражения присваивания определяет тип переменной. Например, она может быть целочисленной, действительной, строковой, индексированной (элемент массива) и т. д. 2.6.4. Отмена операции присваивания и команда гевтаг~ Переменная, имеющая какое либо значение, занимает в памяти намного больше места, чем неопределенная переменная. У последнеи место в памяти занимают только символы идентификатора. Поэтому нередко целесообразно отменить присваивание у тех переменных, которые в дальнейшем можно не использовать. Зто может понадобиться и в том случае, когда какую-либо переменную с численным или иным значением нужно использовать просто как неопределенную переменную. Рассмотрим следующий пример: > х."=10г х:= !О > хг 10 135 2.6. Переменные и их применение > 1пс(х"2,х); Еггог, (зп ьпС) ]]гопд поа]Ьег (ог Суре> ог агдпа]епга Здесь не удалось вычислить интеграл с подынтегральной функцией х"2 из-за того, что переменная х уже определена ранее как целочисленная переменная со значениел( 10, тогда как для вычисления интеграла она должна быть необъявленной или строковой (убедитесь в этом сами).
Для отмены присваивания надо использовать следующее выражение: > х]='х') х:=х Итак, заключение имени переменной в прямые апострофы ликвидирует присваивание. Так что запись х хах' означает, что переменной х возвращается статус неопределенной переменной. Теперь можно вычислить интеграл: > апс (х" 2, х); ! х] 3 Можно сделать переменную х неопределенной и с помощью выражения вида хгаеча)п(х). Это поясняет следующий пример: > х:=123; х:= )23 > х:=еча1п(х) х:=х > упс (х"п,х) (юмп п+! Для отмены присваивания значений разом всем переменным (и введенным функциям пользователя) можно использовать команду геа(аг(.
Следующий пример поясняет ее применение: > х]=5] х:=5 > х"2; 25 > геасагс: > х; > х"2; Следует отметить, что команда геа(аг( отменяет все предшествующие определения, что иногда чревато осложнениями. Применяйте ее только тогда. когда вы уверены, что предшествующая заданной часть документа (или даже ряда документов) действительно не важна. Глава 2. Типы данных и работа с ними Важно отметить, что Мар!е сохраняет в памяти все определения и присваивания, которые были сделаны во всех загруженных в систему документах. Поэтому результаты вычислений в текущем документе могут зависеть от определении в других докул(ентах. Команда гев(аг( позволяет исключить эту зависимость.
2.6.5. Придание переменным статуса предполагаемых В большинстве расчетов пользователей Мар!е вполне удовлетворяет статус переменных, соответствуюший присвоенным им значениям. Однако серьезные расчеты предполагают, что переменные могут иметь определенные ограничения— например, они не должны принимать отрицательных значений при обычном вычислении квадратного корня или логарифма числа. Зля придания переменным статуса предполагаемых используется функция аввцте: ааачне[х,ргор) где х — переменная, имя или выражение, ргор — свойство.
Следующие примеры (файл амцгпе) показывают применение функции аввцте: > геасаггг > ааачпе (х, роавгьче)г > х; х- > Б:=х->ауге(х)г в:=х-а ~Гх > а(2); > а[2.) ю 1.414213562 > а(-2); > ва (х,роаагаче) г гпгв > ва (х, педас1че] г Уа)зе » аЬочг(х)г Оггогпа11у х, гепанеа х-: га ааачвес) го ье: веа1вапое(ореп(0),впг1пьгу) Обратите внимание, что в этом примере переменная х помечена как положительная и прн выводе сопровождается знаком тильды -, как бы предупрежааюшем нас о ее особом статусе. Это не означает, что она не может принять отрицательное значение.
Однако с помошью функции [в можно убедиться в ее особом статусе и при необходимости программным путем исключить вычисления для х <О. Кроме того, о свойствах переменной можно узнать с помошью функции аЬоц((пате). 137 2.7. Работа с файлами и документами Иногда к уже имеющимся признакам надо добавить новые. Для этого используется функция а(Ы(1(опа()у: > аззове (а, поппеоаг1че]: > аоб1Г1опа11у(а<=0); > аЬопг(а)( Ог1о1па11у а, гепавео а-: ьз аззовес) Го Ье: 0 В этом примере переменной а вначале задан признак положительности, а затем а<зО.
Оба признака удовлетворяются только при а = О, что и подтверждает вывод информации о статусе этой переменной функцией аЬоц((а). Предполагаемую переменную можно также изменить путем присваивания ей нового значения, противоречащего ее статусу: > а:=1гз; а:= 123 > аЬопг(а); 1гэ: )(11 ппвегьс за1пез аге ргорегггез аз ее11 аз оЬ)есгз. Тье1г 1осас1оп ьп гье ргореггу 1агггсе ьз оьугосз, ьп гььз сазе 1пгеоег. Для отмены переменным статуса предполагаемых используются те же приемы, что и при отмене присвоенного значения. Например, запись х:='х' отменяет статус предполагаемой для переменной х.
2.7. Работа с файлами и документами 2.У.1. Типы файлов К числу широко распространенных данных относятся файловые данные, которые представлены файлами. Файлом называют имеющую имя упорядоченную совокупность данных, размещенную на том или ином носителе — обычно на жестком, гибком или компакт-диске. В Мар!е используются файлы различных форматов, который указывается расширением файла (знак * означает произвольное имя файла): *.(пв — файлы документов для систем с графическим интерфейсом (Ъу(п()оз(з/Мас1п(озй); *.(пв)н — файлы документов (ЪУог)(збее(з); *Лх1 — текстовые файлы (включая формат Мар!е-текст); * (ех — файлы в формате (.аТеХ; *лп() и *.1(Ь вЂ” файлы библиотек.