** Пресмятане на израз

Да се въведе в низова променлива математически израз, съдържащ две цели числа без знак и аритметична операция между тях (+, -, * или / ), да се пресметне резултатът и да се изведе, пак като низова променлива.

*** По желание: да се направи същото, ако числата са със знак.

Публикувано в 10a с етикети . Постоянна връзка.

One Response to ** Пресмятане на израз

  1. Svetli каза:
    program Project1;
    var
      s,c1,c2:string;
      i,p1,p2:integer;
      rez:real;
    
    begin
      Writeln('Vavedete matematicheski izraz');
      Readln(s);
    
      i:=Pos('+',s);
      if i<>0 then begin
        c1:=Copy(s,1,i-1);
        c2:=Copy(s,i+1,Length(s)-i);
        Val(c1,p1);
        Val(c2,p2);
        rez:=p1+p2;
        Writeln(rez:5:2);
      end;
    
      i:=Pos('-',s);
      if i<>0 then begin
        c1:=Copy(s,1,i-1);
        c2:=Copy(s,i+1,Length(s)-i);
        Val(c1,p1);
        Val(c2,p2);
        rez:=p1-p2;
        Writeln(rez:5:2);
      end;
    
      i:=Pos('*',s);
      if i<>0 then begin
        c1:=Copy(s,1,i-1);
        c2:=Copy(s,i+1,Length(s)-i);
        Val(c1,p1);
        Val(c2,p2);
        rez:=p1*p2;
        Writeln(rez:5:2);
      end;
    
      i:=Pos('/',s);
      if i<>0 then begin
        c1:=Copy(s,1,i-1);
        c2:=Copy(s,i+1,Length(s)-i);
        Val(c1,p1);
        Val(c2,p2);
        rez:=p1/p2;
        Writeln(rez:5:2);
      end;
    
    
      Readln;
    end.
    

Вашият коментар