Дан файл, содержащий текст и арифметические выражения вида а*в, где * — один из знаков +, -, *, /. Выписать все арифметические выражения и вычислить их значения — Pascal(Паскаль)

{Дан файл, содержащий текст и арифметические выражения вида а*в,
где * - один из знаков +, -, *, /.Выписать все арифм. выражения
и вычислить их значения}

program pn12;
var f:text;
    s,sa,sb:string;
    c:char;
    i,a,b,o,j,code:integer;
    m,op:set of char;
begin m:=['1','2','3','4','5','6','7','8','9','0'];
      op:=['+','-','*','/'];
      assign(f,'e:\tp\tp6\Arif.dat');reset(f);
      while not(eof(f)) do
        begin readln(f,s);
              writeln(s);
              for i:=2 to length(s)-1 do
                 if (s[i]  in op)and
                   (s[i-1]in m) and
                   (s[i+1]in m)
                    then begin
                               j:=1;
                               sa:='';
                               while (s[i-j] in m) and (i-j>0) do
                                 begin sa:=s[i-j]+sa;
                                       j:=j+1
                                 end;
                               j:=1;
                               sb:='';
                               while (s[i+j] in m) and (i+j<=length(s)) do
                                 begin sb:=sb+s[i+j];
                                       j:=j+1
                                 end;
                               val(sa,a,code);val(sb,b,code);
                               case s[i] of
                                  '+':O:=a+b;
                                  '-':O:=a-b;
                                  '*':O:=a*b;
                                  '/':O:=a div b;
                                  end;
                               writeln(a,s[i],b,'=',O,' ')
                          end;
         end;
       close(f);
end.

Leave a Comment

− 3 = 7