procedure TForm1.Button1Click(Sender: TObject); var num:Integer; var p:PChar; procedure nextInc(var p:PChar);begin while p^ in[' ',#7] do inc(p); if p^<>#0 then inc(p);end; procedure addsub ;forward; procedure muldiv; procedure factor; begin num:=0; if p^ = '(' then begin nextInc(p); addsub; if p^<> ')' then Abort;nextInc(p);end else while p^ in ['0'..'9'] do begin num:=num*10+StrToInt(p^);Inc(p);end; end; var save:Integer; oldsym:char; begin factor; while (p^ in ['*','/'] ) do begin save:=num;oldsym:=p^; nextInc(p); factor; case oldsym of '*': num:=save*num; '/': num:=save div num; end; end; end;