Next:5.18
Полином
Up:5
Выбор представления данных
Previous:5.16
Логический фрагмент
Класс(ВЫРАЖЕНИЕ):(КОНСТАНТА,ПЕРЕМЕННАЯ,БИНАРНАЯ);
Операция(ВЫРАЖЕНИЕ):(ПЛЮС,МИНУС,УМНОЖИТЬ); (* для бинарных
выражений*)
Знач(ВЫРАЖЕНИЕ):ЗНАЧЕНИЕ;
(* для выражений -- констант*)
Перем(ВЫРАЖЕНИЕ):char;
(*буква для выражения переменной *)
Цифра(integer,ЗНАЧЕНИЕ):integer;
КоличествоЦифр(ЗНАЧЕНИЕ):integer;
Здесь Цифра(I,X) должна давать значение I-й цифры в значении X. Все эти функции довольно просто реализуются на языке Zonnon, если в качестве в н у т р е н н е г о представления взять
const N=20; (* Ограничение на количество цифр в ЗНАЧЕНИИ
*)
object { public, ref } ЗНАЧЕНИЕ;
var { public } ДЛИНА:integer;
ЗНАЧ:array N
of
Char
end ЗНАЧЕНИЕ;
type ОПЕРАЦ=(ПЛЮС,МИНУС,УМНОЖИТЬ);
CLASS=(КОНСТАНТА,ПЕРЕМЕННАЯ,БИНАРНАЯ);
object { public, value } ВЫРАЖЕНИЕ;
var { public } KL:CLASS;
БУКВА:Char; (*ПЕРЕМЕННАЯ*)
ЗНАЧЕН:ЗНАЧЕНИЕ; (*КОНСТАНТА*)
ОП:ОПЕРАЦ; ЛЕВ,ПРАВ:ВЫРАЖ; (*БИНАРНАЯ*)
end ВЫРАЖЕНИЕ;
Next:5.18
Полином
Up:5
Выбор представления данных
Previous:5.16
Логический фрагмент