Вычисление значений математического выражения - Pascal ABC

Формулировка задачи:

(Перенесено из дублирующей темы) Помогите пожалуйста с задачей! Составить программу вычисления значения математического выражения, полученного путем сочетания произвольных чисел и знаков арифметических действий. Действия выполнять по порядку. Заранее большое спасибо!!!


textual

Код к задаче: «Вычисление значений математического выражения - Pascal ABC»

Const z = '+-*/';
 
Function Oper(x,y : Real; o : Char ) : Real;
Begin
 Case Pos(o,z) of
   1 : Oper:=x+y;
   2 : Oper:=x-y;
   3 : Oper:=x*y;
   4 : Oper:=x/y;
 end;
end;
 
Var
  S   : String;
  A,B : Real;
  C   : Char;
Begin
  S:='60-8/2+5*90';  { Rreadln(S); } 
  A:=0; B:=0; C:='+';
  While Length(S)>0 do
  Begin
    If Pos(S[1],z)=0 then
    Begin
      B:=B*10+Ord(S[1])-Ord('0');
      Delete(S,1,1);
    end
      else
      Begin
        A:=Oper(A,B,C);
        B:=0;
        C:=S[1]; 
        Delete(S,1,1);
      end;
  end;
  Writeln(Oper(A,B,C));
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

11   голосов, оценка 4.000 из 5

Источник