С клавиатуры вводится строка, содержащая целые числа, отделённые друг от друга знаками арифметических операций + - * /.
Подсчитать и вывести значение этого выражения. Операции выполняются последовательно (как на калькуляторе) без учёта приоритета операций.
Pascal Abc

Ответы

Ответ дал: Аноним
0
Var
   A,R:real;
   i,L,z:integer;
   S:string;
Begin
Read(S);
L:=Length(S);
i:=1;
R:=0;
While (S[i]in['0'..'9'])and(i<L) do
   Begin
   R:=R*10+StrToInt(S[i]);
   i:=i+1
   End;
While i<L do
   Begin
   Case S[i] of
      '+':z:=0;
      '-':z:=1;
      '*':z:=2;
      '/':z:=3;
   End;
   i:=i+1;
   A:=0;
   While (S[i]in['0'..'9'])and(i<L) do
      Begin
      A:=A*10+StrToInt(S[i]);
      i:=i+1
      End;
   if i=L then A:=A*10+StrToInt(S[L]);
   Case z of
      0:R:=R+A;
      1:R:=R-A;
      2:R:=R*A;
      3:R:=R/A;
   End;
   End;
WriteLn('R = ',R);
End.
Вас заинтересует