Цитата:
Сообщение от H3@DHuNT3R
Спасибо за ответ. Он то меня и надоумил, что рано мне еще с такими вещами работать
Ну ничего, будем учится  .
Всем спасибо за ответы!
|
Тогда стековый калькулятор.
Ты заносишь все в стек, при нажатии кнопки выполняешь вычисления. Стек можно сделать на списке (самое простое, меньше всего писать кода).
Код:
type
TStackItemType = (sitValue, sitOperation);
TOperation = (oPlus, oMinus, oMul, oDiv);
TStackItem = record
ItemType : TStackItemType;
Value : Variant;
end;
POperation = ^TOperation;
var
FStack : TList; // Создать в OnCreate, удалить в OnDestroy
procedure TForm1.AddValue(Sender : TObject);
var
FItem : PStackItem;
begin
New(FItem);
FItem.ItemType := sitValue;
FItem.Value := StrToInt(Edit1.Text);
FStack.Add(FItem);
end;
// Сложение, остальные операции аналогично
procedure TForm1.Plus(Sender : TObject);
var
FItem : PStackItem;
begin
New(FItem);
FItem.ItemType := sitOperation;
FItem.Value := oPlus;
FStack.Add(FItem);
end;
Ну а в процедуре вычисления идешь по набранному стеку и выполняешь вычисления.