задача 7 урок 18

задача 7 урок 18

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


например:

1 +  3

или

2 - 12

Напишите программу, которая разбирает вычисляет результат этого приложения (сделайте поддержку операций сложения и вычитания).

program task_7_lesson_18;   // разбиваю на 3 строки
procedure strok(s: string; var chislo1, chislo2, znak: string);
var i: integer;
begin
  for i := 1 to length(s) do
    begin
    if ((s[i] >= '0') and (s[i] <= '9')) then
      chislo2 := chislo2 + s[i]
    else if (s[i] <> ' ') then
      begin
        znak := s[i];
        chislo1 := chislo2;
        chislo2 := '';
      end;
    end;
end;
function operat(s1, s2, znak: string) : integer;     // выполняю операцию
var
  n, n1, code: integer;
begin
  val(s1, n, code);
  val(s2, n1, code);
  if (znak = '+') then
    result := n + n1
  else if (znak = '-') then
    result := n - n1
  else
    write('ERROR');
end;

var
  s, chislo1, chislo2: string;
  znak: string;
  otvet: integer;
begin
  chislo1 := '';
  chislo2 := '';
  znak := '';

  readln(s);
  strok(s, chislo1, chislo2, znak);
  otvet := operat(chislo1, chislo2, znak);
  writeln(otvet);
  readln
end.

Консоль

567          +  45
612