unit postfix;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
operator:shortstring;
wort:string;
hilf,laenge,i,neu:integer;
op:boolean;
zahl1,zahl2:integer;
zeichen:char;
implementation
uses post;
{$R *.dfm}
PROCEDURE rechne(operator:shortstring;VAR neu:integer);
BEGIN
zahl1:=pop^.inhalt;
zahl2:=pop^.inhalt;
zeichen:=operator[1];
CASE zeichen OF
'+':neu:=zahl2+zahl1;
'-':neu:=zahl2-zahl1;
'*':neu:=zahl2*zahl1;
'/':neu:=zahl2 DIV zahl1;
END;
push(neu);
END;
procedure TForm1.Button1Click(Sender: TObject);
begin
op:=false;
wort:=edit1.text;
laenge:=length(wort);
FOR i:=1 TO laenge DO BEGIN
CASE (wort[i]) OF
'+':BEGIN rechne(wort[i],neu);op:=true;END;
'-':BEGIN rechne(wort[i],neu);op:=true;END;
'*':BEGIN rechne(wort[i],neu);op:=true;END;
'/':BEGIN rechne(wort[i],neu);op:=true;END;
END;
IF op=false THEN BEGIN hilf:=strtoint(wort[i]);
push(hilf);
END;
END;
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
edit2.Text:=inttostr(neu);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
init;
end;
end.