Задача 8 Урок 17

Задача 8 урок 17

На вход вашей программы подается строка вида:

5 + 6 -34 + 56  - 7 + 2

("сколько угодно" чисел с операциями суммы и разности в любом порядке). Вычислите результат (пробелов между символом операции и числом может и не быть)

program U17Z8;
var s,str: string;
    i,a,b,code,j: integer;
    f:boolean;
begin
  writeln('vvedite stroku');
  readln(s);
  str:='';
  b:=0;
  for i:=1 to length(s) do
  begin
    if (s[i]='+') then
      f:=false;
    if (s[i]='-') then
      f:=true;
    if (s[i]>='0') and (s[i]<='9') then
      begin
      str:=str+s[i];
        if (s[i+1]<'0') or (s[i+1]>'9') then
          begin
            val(str,a,code);
            str:='';
            if (f) then
              a:=a*(-1);
            b:=b+a;
            a:=0;
          end;
      end;
  end;
  writeln(b);
  readln();
end.