Обратите снимание на то, что функция evaln не смогла вычислить строковое выражение `2+3` поскольку оно не является числовым типом данных. Однако функция parse преобразовала это выражение в числовое, что и привело к его вычислению.

2.6. Переменные и их применение

2.6.1. Типы переменных

Как следует из самого названия, переменные — это объекты, значения которых могут меняться по ходу выполнения документа. Пока мы рассматриваем лишь глобальные переменные, доступные для модификации значений в любом месте документа. Тип переменной в системе Maple определяется присвоенной ей значением — это могут быть целочисленные (integer), рациональные (rational), вещественные (real), комплексные (complex) или строчные (string) переменные и т.д. Переменные могут также быть символьного типа (их значением является математическое выражение) или типа списка (см. далее). Для явного указания типа переменных используется конструкция

name::type

где name — имя (идентификатор) переменной, type — тип переменной, например, целочисленный (integer), вещественный с плавающей точкой (float), с неотрицательным значением (nonneg), комплексный (complex) и т.д.

2.6.2. Назначение переменным имен

Переменные задаются своим именем — идентификатором, который должен начинаться с буквы и быть уникальным. Это значит, что ключевые слова языка Maple нельзя использовать в качестве имен переменных. Хотя имена ряда команд и функций можно использовать в качестве идентификаторов переменных, делать это крайне нежелательно. Ограничений на длину идентификатора практически нет — точнее, она не должна превышать 524 275 символов! Так что сложностей с подбором идентификаторов для переменных у вас не будет.

Имена переменных могут содержать одну букву (например, х, Y или Z), либо ряд букв (Xmin или Xmax). В любом случае имя переменной надо начинать с буквы. Некоторые символы, например знак _ могут использоваться в именах (например, Var_1, Var_2). Нельзя, однако, вводить в имена переменных знаки, обозначающие операторы — например, а/b или а-b будет истолковано как деление а на b или вычитание из переменной а переменной b.

Имена могут задаваться в обратных апострофах. При этом они просто тождественны именам без апострофов:

> var1:=123;var2:= `Hello`;

var1 := 123 var2 := Hello

> `var1`;`var2`;

123 Hello

Строчные и прописные буквы в идентификаторах различаются, так что Var1 и var1 — это разные переменные.

Для проверки предполагаемого имени на уникальность достаточно выполнить команду ?name, где name — выбранное имя. Если при этом откроется окно справки с этим именем, значит, оно уже использовано в Maple. Лучше воздержаться от его применения, так как связанная с этим именем команда или функция перестает работать, как только это имя закрепляется за какой-либо переменной.

2.6.3. Присваивание переменным значений

Поскольку Maple 9.5 прежде всего система символьной математики, то по умолчанию любые переменные рассматриваются как объекты символьного типа. Благодаря этому такие переменные могут фигурировать в математических выражениях, (таких как sin(x)/x), без их предварительного объявления. В отличие от обычных языков программирования такое использование переменных не влечет за собой появления сообщений об ошибках и является более естественным.

Для присваивания переменным конкретных значений используется комбинированный символ присваивания «:=», например:

n:=1 — переменной n присваивается целочисленное значение 1;

х:=123.456 — переменной х присваивается вещественное значение 123.456;

у:=17/19 — переменной у присваивается рациональное значение 17/18;

name:=`Piter` — переменной name присваивается строковое значение `Piter`;

expr:=2*Pi/3 — переменной expr присваивается значение выражения 2л??!!/3;

V:=[1,2,3] — переменной V присваивается значение списка чисел [1,2,3];

М:=[[1,2,3],[4,5,6]] — переменной М присваивается значение двумерного массива;

f:=x->x^2 — переменной f присваивается значение функции пользователя f(x)=x^2.

Правая часть выражения присваивания определяет тип переменной. Например, она может быть целочисленной, действительной, строковой, индексированной (элемент массива) и т.д.

2.6.4. Отмена операции присваивания и команда restart

Переменная, имеющая какое либо значение, занимает в памяти намного больше места, чем неопределенная переменная. У последней место в памяти занимают только символы идентификатора. Поэтому нередко целесообразно отменить присваивание у тех переменных, которые в дальнейшем можно не использовать. Это может понадобиться и в том случае, когда какую-либо переменную с численным или иным значением нужно использовать просто как неопределенную переменную. Рассмотрим следующий пример:

> х:=10;

х:= 10

> х;

10

> int(х^2,x);

Error, (in int) wrong number (or type) of arguments

Здесь не удалось вычислить интеграл с подынтегральной функцией х^2 из-за того, что переменная х уже определена ранее как целочисленная переменная со значением 10, тогда как для вычисления интеграла она должна быть необъявленной или строковой (убедитесь в этом сами).

Для отмены присваивания надо использовать следующее выражение:

> х: =`х`;

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату