Cod sursa(job #744266)

Utilizator vasile_pojogaPojoga Vasile vasile_pojoga Data 8 mai 2012 09:53:14
Problema Evaluarea unei expresii Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.28 kb
program evaluare;
var a:array[1..100000] of char;
    i:longint;
    b:array[1..1 shl 17] of char;
function rez:longint;forward;

function factor:longint;
 var x:longint;
begin
x:=0;
if a[i]='(' then begin i:=i+1; x:=rez; i:=i+1; end
            else while (a[i]>='0')and(a[i]<='9') do begin
                                                    x:=x*10+ord(a[i])-48;
                                                    i:=i+1;
                                                    end;
factor:=x;
end;

function termen:longint;
 var y:longint;
begin
y:=factor;
while (a[i]='*')or(a[i]='/') do
        if a[i]='*' then begin i:=i+1; y:=y*factor;end
                    else begin i:=i+1; y:=y div factor; end;
termen:=y;
end;

function rez:longint;
 var v:longint;
begin
v:=termen;
while (a[i]='+')or(a[i]='-') do
        if a[i]='+' then begin
                         i:=i+1;
                         v:=v+termen;
                         end
                    else begin
                         i:=i+1;
                         v:=v-termen;
                         end;
rez:=v;
end;
begin
assign(input,'evaluare.in');settextbuf(input,b); reset(input);
assign(output,'evaluare.out'); rewrite(output);
read(a);
close(input);
i:=1;
write(rez);
close(output);
end.