procedure addsub; var save:Integer; oldsym:char; begin case p^ of '+': begin nextInc(p);MulDiv; end; '-': begin nextInc(p);MulDiv; num:=-num; end; else muldiv; end; while (p^ in [ '+','-'] ) do begin save:=num;oldsym:=p^; nextInc(p); muldiv; case oldsym of '+': num:=save+num; '-': num:=save-num; end; end; end; begin AllocConsole; p:=PChar(Edit1.Text); while p^<>#0 do begin addsub; writeln(IntToStr(num)); if p^ in [',' ] then nextInc(p) else break; end; end;