var num:Integer;  p:PChar;
 procedure addsub ;forward;
  procedure factor; begin
  if p^ = '(' then begin inc(p); addsub; if p^<> ')' then Abort;inc(p);end
  else if p^ in ['1'..'9'] then begin num:=StrToInt(p^);inc(p);end;
  end;
 procedure muldiv; var save:Integer; oldsym:char;  begin
  factor;
  while (p^ in ['*','/'] ) do  begin save:=num;oldsym:=p^; inc(p);  factor;
     case oldsym of
     '*': num:=save*num;
     '/': num:=save div num;
     end;
    end;
 end;
 procedure addsub;  var save:Integer; oldsym:char;  begin
  case p^ of
    '+': begin inc(p);MulDiv;      end;
    '-': begin inc(p);MulDiv; num:=-num; end;
  else  muldiv;
  end;
  while (p^ in [ '+','-'] ) do
   begin save:=num;oldsym:=p^; inc(p);
     muldiv;
    case oldsym of
    '+': num:=save+num;
    '-': num:=save-num;
    end;
   end;
 end;
begin
p:=PChar(作った文字列); addsub; 答えはnum