Показать сообщение отдельно
  #4  
Старый 08.12.2011, 01:25
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,105
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А что тебе надо сделать?
Пусть у тебя есть некоторое математическое выражение, состоящее из цифр и знаков + и *
Тогда тебе нужен некоторый класс, выглядящий примерно так:
Код:
type
  TOperation = class
    Op1 : TOperation;
    Op2 : TOperation;
    OpType : Char;
    constructor Create(Data : String);
    destructor Destroy;
  end;

Здесь Op1, Op2 - операнды (слева и справа от знака), OpType - сама операция, параметр конструктора - исходная строка.

Конструктор должен разобрать строку, выделит текущую операцию, запомнить ее и создать еще 2 класса Op1 и Op2, куда в конструктор передать части исходной строки. Destroy соответственно, уничтожает дерево. Ну и можно добавить процедуру вычисления, которая собственно и вычислит по дереву результат.

Может немного путано, но попробуй въехать и понять.
Ответить с цитированием