> s: = `2+3*5`;
s: = 2 +3*5
> evaln(s);
s
> parse(%);
17
Обратите снимание на то, что функция evaln не смогла вычислить строковое выражение `2+3` поскольку оно не является числовым типом данных. Однако функция parse преобразовала это выражение в числовое, что и привело к его вычислению.
2.6. Переменные и их применение
Как следует из самого названия, переменные — это объекты, значения которых могут меняться по ходу выполнения документа. Пока мы рассматриваем лишь глобальные переменные , доступные для модификации значений в любом месте документа. Тип переменной в системе 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
Переменная, имеющая какое либо значение, занимает в памяти намного больше места, чем неопределенная переменная. У последней место в памяти занимают только символы идентификатора. Поэтому нередко целесообразно отменить присваивание у тех переменных, которые в дальнейшем можно не использовать. Это может понадобиться и в том случае, когда какую-либо переменную с численным или иным значением нужно использовать просто как неопределенную переменную. Рассмотрим следующий пример:
Читать дальше
Конец ознакомительного отрывка
Купить книгу