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

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

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

<целоечисло><произвольное число пробелов> <арифм.операция> <произвольное число пробелов> <целоечисло>

например:

1 +  3

или

2 - 12

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

var i, Code, a, b, c: integer;
    s, bStr, aStr: string;
     flag: string;
begin
  writeln('vvedi stoky');
  readln(s);
  flag := '';
  for i := 1 to length(s) do
    begin
      if((s[i] >= '0') and (s[i] <= '9') and (flag = '') ) then
        aStr := aStr + s[i]
      else if((s[i] >= '0') and (s[i] <= '9') and (flag <> '') ) then
        bStr := bStr + s[i];
      if(s[i] = '+') then
        flag := 'summ';
      if(s[i] = '-') then
        flag := 'razn';
    end;
  Val(aStr, a, Code);
  Val(bStr, b, Code);
  if(flag = 'summ') then
    c := a + b
  else if(flag = 'razn') then
    c := a - b;
  writeln(c);
  readln();
end. 

var i, Code, a, c: integer;
    s,  aStr: string;
begin
  writeln('vvedi stoky');
  readln(s);
  c:=0;
  for i := 1 to length(s) do
    begin
      if((s[i] >= '0') and (s[i] <= '9')) then
        aStr := aStr + s[i];
      if((s[i] = '+') or (s[i] = '-') or (i = length(s))) then //(i = length(s) для последнего числа тк оно ждет знака за ним для сложения
        begin
          Val(aStr, a, Code);
          aStr := '';
          aStr := s[i];
          c:= c + a;
        end;
    end;
  writeln(c);
  readln();
end.       
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)