nextupprevious

Next:5.18 Полином
Up:5 Выбор представления данных
Previous:5.16 Логический фрагмент


5.17 Простое выражение

Абстрактный тип ВЫРАЖЕНИЕ с набором функций:

Класс(ВЫРАЖЕНИЕ):(КОНСТАНТА,ПЕРЕМЕННАЯ,БИНАРНАЯ);
Операция(ВЫРАЖЕНИЕ):(ПЛЮС,МИНУС,УМНОЖИТЬ);  (* для бинарных выражений*)
Знач(ВЫРАЖЕНИЕ):ЗНАЧЕНИЕ;                                             (* для выражений -- констант*)
Перем(ВЫРАЖЕНИЕ):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 Логический фрагмент


© В.Н. Касьянов, Е.В.Касьянова, 2004