Дьяконов В. Maple 7 - Учебный курс (1185900), страница 33
Текст из файла (страница 33)
В любом случае имя переменной надо начинать с буквы. Некоторые символы, например знак, могут использоваться в именах (напри- мер, Уаг 1, Уаг 2). Нельзя, однако, вводить в имена переменных знаки, обоз- начающие операторы, — например, а/Ь или а-Ь будет истолковано как деление а на Ь или вычитание из переменной а переменной Ь, Имена могут задаваться в обратных апострофах. При этом они просто тожде- ственны именам без апострофов: > чаг1: 123;чаг2: 'Немо'; чаг1 ,'= 123 чаг2:= Нейо > 'чаг1' чаг2'," 123 Не!!о Строчные и прописные буквы в идентификаторах различаются, так что Уаг1 и чаг1 — это разные переменные.
Для проверки предполагаемого имени на уникальность достаточно выполнить команду Тпаве, где паве — выбранное имя. Если при этом откроется окно справки с этим именем, значит, оно уже использовано в Мар!е. Лучше воздержаться от его применения, так как связанная с этим именем команда или функция перестает работать, как только это имя закрепляется за какой-либо переменной. Переменные 219 Присваивание переменным значений Поскольку Мар!е 7 прежде всего система символьной математики, то по умолчанию любые переменные рассматриваются как объекты символьного типа. Благодаря этому такие псремшшыс могут фигурировать в математических выражениях (таких, как з)п(х)/х) без их предварительного объявления.
В отли ше от обычных языков программирования такое использование псрсмегшых пе влечет за собой появления сообщений об ошибках и является более естественным. Для присваивания переменным конкретных значений используется комбинированный шсмвол присваивания с: >, ссаирилсе)х О и:=1 — переменной и присваивается целочисленное значение 1; О хс=123.4бб — переменной х присваивается вс)пествспнос значение 123Л56; О у:=17!19 — переменной у присваивается рациональное значение 177!8; О паше: 'Р11ег' — переменной паше присваивается строковое значение 'Р11ег'; О ехрг:>2*Р1/3 — переменной ехрг присваивается значение выражения 2лУЗ; О Ч: !1,2,31 — переменной х присваивается значение списка чисел !1,2,3~; О М:=[!1,2,33,!4.б,б)3 — переменной М присваивается зиачесшс двумерного массива; О 1:"х >х"2 — переменной б присваивается значение функция пользователя т(х) х"2.
Правая часть выражения прпсвшсвапия определяет тип перехсесшой. !!апримср, оиа может бьсть целочисленной, действительной, стрсиовой, иидекспрова)пшй (злемент массива) н к д. Отмена операции присваивания и команда гезий Переменная, имеющая какое-либо значение, занимав~ в памяти иаьшого больше места, чем неопределенная переменная. У последней место в памяти занимают тсхлько символы идентификатора. Поэтому нередко целесообразно отменить присваиванпе у тех переменных, кспорые в дальпейшелс можно нс использовать. Это может понадобиться и в том случае, когда какую-либо переменную с численным или иным значением нужно использовать просто как неопределенную переменйую.
Рассмотрим следующий пример: >х:10: х:= !О >х; 1О > 1пт(х"2,х); Епог, (1п ншй) втопя пвшЬег (ог гуре) оГ агуппепсз Здесь не удалось вычислить интеграл с подынтегральной функцией х"2 из-за того, что переменная д,у)ке определена ранее как целочисленная переменная со зиаче- 220 Урок 5. Типы данных системы нар!е т пнем 10, тогда как для вычисления интеграла она должна быть необъявленной или строковой (убедитесь в этом сами).
~!ля отмены присваивания надо использовать следующее выражение: > х:-'х' х:=х Итак, заключение имени переменной в прямые апострофы ликвидирует прнсвапванне. Так что запись х: 'х' означает, что переменной х повара)цвет<я статус неопределенной переменной. Теперь можно вычислить н<жеграл: > )пс<х"2.х): з — х 3 Можно сделать переменную х неопределенной я с помощью выражения вида х;=еча)п(х). Это поясняет следующий пример: > х:=123. х:= 123 х:-еча)п<х): Х:=Х > )пт!х"п,х): х и+1 Д>тя отмены присваивания значений разом всем переменным (и введенным функциям пользователя) можно использовать кома)тлу гезгагс. Следукнцп!1 пример поясняет ее применение; > х;-5; х:=5 х 2; 25 > геасагс; >х; > х"2: х Следует отметить, что команда гезсаг< отменяет все предшествующие определения, что иногда чревато осложнениями.
Применяйте ее толы<о тогда, когда вы уверены, что предшествующая заданной часть документа (или даже ряда документов) действительно не важна, Важно отметить, что Мар)е сохраняет в памяти все определения и присваивания, которые были сделаны во всех загруженных в систему документах. Поэтому результаты вычислений в текущем документе могут зависеть от определений в других документах. Команда геасаг$ позволяет исключить зту зависимость.
Переменные 221 Придание переменным статуса предполагаемых В большинстве расчстов пользователей Мар1е вполне удовлетворяет статус переменных, соответствующий присвоенным им значениям. Однако серьезные расчеты предполагают, что переменные могу~ иметь определенные ограиичеиия— например, они не должны принимать отрицательных значений при обычном вычислении квадратного корня илп логарифма числа. Для придания переменным статуса предполагаемых используется функция аззояе: 555оме(х.ргор), где х — переменная, имя илн выражение, ргор — свойство.
Следу)ощпе примеры показыва(от применение функции аззпае; > геотагьз > 555оов(х.ро5!51че): х; > 5:=Х.>5Огт(х); 5:= зчП > 5(2): чГ2 > 5(2.); !.414213562 5(.2); 2/2 > 15(х.ро5151че); (гие 15(х,педа51че); Га!Хе > аооот(х); ОпбйпаПу х, гепатсд хсе 15 алзпптео (о Ье: йеаИапде(Ореп(0),!абову) Обратите внимание, что в этом примере переменная х помечена как положительная и при выводе сопровождается знаком гильды -, как бы предупреждающим пас о ее особом статусе. Это не означает, что она пс может принять отрицательное значение.
Однако с помощью функции 15 можно убедиться в ее особол( статусе и при необходимости программным путем искл)очить вычисления для х <О. Кроме того, о свойствах переменной можно узнать с помощью функции аЬспС(паве), Иногда к уже имеющимся признакам надо добавить новые. Для этого используется функция а()()111опа1)у: > 555ояе(а,поппеда51че): > ааа(51опа))у(а<=О): > аьоот(а): Ог!я)па11у а, гепатс(1 аес !5 аааип)е(( П) Ье: 0 222 Урок 5. Типы данных системы мар1е Т В зтолт примере переменной а вначале задан признак положительности, а затем а О. Оба признака удовлетворяются только при а = !), что и подтверждает вывод информации о статусе этой переменной функцией аЬои11а), Предполагаемую переменную люжно также изменить путем пртлсванвания ей нового значения, противоречащего ее статусу: > а:-123: а:= 123 > аьоот(а): 123: АН пщпепс еа!пез аге ргореп!ез аз ив!! аз оЬ)естз.
ТЬе!г 1осабоп тп тйе ргореггу 1агйсе гз оЬУ!опз, !и 1Ь!з сазе !птецег. Для отмены переменным статуса предполагаемых используются те же приемы, что и при отмене присвоенного значения. Например, запись х: ' х' отменяет статус предполагаемой для переменной х. Что нового мы узнали? В этом уроке мы научились: О Использовать Мар1е-язык и его синтаксис. О )работать с выражениями.
О Задавать простые типы данных. Р Задавать данные множественного типа. О Задавать данные строкового типа. О Писать программные комментарии. О Задавать переменные и определять их тип. О Использовать константы различного типа. Встроенные операторы и функции а а П Операторы и операнды Математические функции Операторы и функции для работы с векторами и матрицами Функции для работы со строковыми данными Операторы и операнды Виды операторов Операторы во входном языке и языке программирования Мар1е служат для конструирования выражений.
Формально операторы представлены своимп идентификаторами в виде специальных математических знаков, слов и иных имен. Операторы, как это вытекает нз их названия, обеспечивают определенные операции на?1 данными, представленпымп операндами. Имеется пять основных типов операторов: О Ь[пагу — бинарные операторы (двумя операндами); О впагу — унарные операторы (с одним операндом); О впПагу — нульарпые операторы (без операнда — это олна, две и три пары кавычек); О ргессг1епсе — операторы старшинства (включая логические операторы); О [ппсг1ова! — функциональные операторы. Для просмотра операторов и их свойств можно использовать следующие команды: > ?орегасога[Ь?пагх): > ?орегасога[ипагуВ > ?орегатога[пи11агу); > ?орегатога[ргесеоепсе): > ?орегатогл[топст1опа1); Л для изучения примеров применения операторов нужно задать и цсполнить команду: > ?орегатога[ехаер!еа]; Команда: > ? Ве1?пе: позволяет ознакомиться с функций бег?пе.
С ее помощью можно определяп новые операторы. Бинарные (инфиксные) операторы Бинарные (инфиксные) операторы используются с двумя операндами, обычно размещаемыми по обе стороны от оператора. В ядро Мар[е 7 включено около трех десятков бинарных операторов. Основные из них перечислены в табл. 6.1. Операторы и операнды 225 Таблица 6.1. Бинарные операторы Обозначение Оператор Сложение Вычитание Умножение Деление Возведение в степень Остаток от деления Оператор последовательности Разделительная точка Оператор композиции Повторение композиции Разделитель выражений Прнсваивание Задание интервала Разделитель выражений Некоммутативное умножение Нейтральный оператор Конкатенация [объединение) *' или " (по(( $ В' 8~51Ппй> Примеры использования бинарных операторов: > 2+3.(.4)'( 9 > [2 3,2**31: [8, 8~ > 7 аоо 5: 1 ):= а-ь— а+1 2 > [392.39(з21( [3,3 > [хвх.хввх)( (2) (>) > [хзз,х$41( [х, х, х,х,х, х, х ~ > (пс(х"2.х 1..4); 21 > 3( 'Не!1о'( ) ' иу ( ) тг(епе)'( о':= НеИо ту )Неп((! Оператор композиции 99 может использоваться для создания сложных функций, содержац(их цепные дроби: > Сп а->1/(1+а):($993)(а); 226 Урок 6.