
уменьшает скорость вычислений, но является необходимым условием для любой
системы компьютерной алгебры, поскольку для многих математических действий,
в
частности для сокращения двух полиномов по их наибольшему делителю, необходимы
подобные числа. Числа, не являющиеся целыми, обычно представляются в виде дроби,
или отношения двух целых чисел. Можно также использовать числа с плавающей
точкой.
Пример:
1: 123456789*987654321; -,
,
121932631112635269
2:
Из примера видно, что система Reduce-З является диалоговой, и приглашением к
диалогу является порядковый номер вводимой команды с двоеточием. Команда
завершается
символом";"
(точка с запятой).
4.2.2 Переменные
Кроме стандартных типов данных (integer, real и string) в системе Reduce-3
имеются специальные величины, называемые скалярными (scalar). Скалярный тип
данных является основным, он
назначается
переменной
по умолчанию при отсутствии
явного ее описания. Назначение переменной
типа
по умолчанию допускалось в
некоторых ранних языках программирования (Фортран,
ПЛ-1),
современные же языки
программирования (Паскаль, C++) требуют явного задания типа каждой переменной
(например, real, integer в
Паскале).
Значением скалярной переменной является математическое выражение в
символьном виде, причем перед присваиванием значения производится обращение к
встроенной функции
AEVAL,
выполняющей упрощение выражения. При
инициализации переменной ее значение равно самой переменной, как и в
rnuLisp.
Пример диалога:
1:х:=а+Ь;
X := А
+
В -
2:у:=а-Ь;
Y := А - В
3:z:=x*y*a;
Z := ,А*
(А
2
-
В
2
)
.
В данном
примере,в
третьей команде происходит замена переменной х на ее
значение а+b, переменной у на
а-b,
переменная а при этом
равна
самой себе, так как ей
не было ранее присвоено значений. После обращения к функции
AEVAL
происходит
упрощение выражения (a+b)*(a-b)*a, что и приводит к выводимому результату.
54