Cod sursa(job #174393)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 8 aprilie 2008 20:34:36
Problema Evaluarea unei expresii Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.51 kb
program evaluare;
var f,g:text;
    c:char;
function termen:longint; forward;
function factor:longint; forward;
function eval:longint;
   var r:longint;
   begin
     r:=termen;
    while  (c='+')or(c='-') do
        if c='+' then begin
                        read(f,c);
                        r:=r+termen;
                      end
                  else begin
                         read(f,c);
                         r:=r-termen;
                       end;
      eval:=r;
   end;
function termen:longint;
    var r:longint;
    begin
      r:=factor;
      while (c='*') or (c='/') do
         if c='*' then begin
                         read(f,c);
                         r:=r*factor;
                       end
                  else begin
                         read(f,c);
                         r:=r div factor;
                       end;
       termen:=r;
    end;
function factor:longint;
     var r:longint;
      begin
        r:=0;
        if (c='(') then begin
                          read(f,c);
                          r:=eval;
                          read(f,c);
                        end
                    else while (c>='0') and(c<='9') do
                         begin
                           r:=r*10+ord(c)-ord('0');
                           read(f,c);
                         end;
          factor:=r;
      end;
begin
assign(f,'evaluare.in'); reset(f);
assign(g,'evaluare.out'); rewrite(g);
read(f,c);
writeln(g,eval);
close(g);
close(f);
end.