Задача 10 Урок 18

Задача 10 Урок 18

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

5 + 6 -34 + 56 - 7 + 2

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

var s:string; i,j,l,k,t:integer; a:array[1..10] of integer; x:array [1..10] of string; znak:array [1..8] of char;
begin
  readln(s);
  j:=1;
  for i:=1 to Length(s) do
  begin
    if (s[i]>='0')and (s[i]<='9')then
      x[j]:=x[j]+s[i]
    else if s[i]<>' ' then
    begin
      znak[j]:=s[i];
      j+=1;
    end;
  end;
  for j:=1 to high(x) do
  begin
    val(x[j],a[j],l);
    if (j>1) then
    begin
      if(znak[j-1]='+') then
        a[j]:=a[j-1]+a[j]
      else
        a[j]:=a[j-1]-a[j];
    end;
  end;
  write('=',a[j]);
  readln();
end.