Cod sursa(job #1011582)

Utilizator Vasile_Catananoname Vasile_Catana Data 16 octombrie 2013 23:08:01
Problema Evaluarea unei expresii Scor 90
Compilator fpc Status done
Runda Arhiva educationala Marime 1.46 kb
program p1;
var a:array[0..10000] of char ;
    f,g:text;
    i,n,m,k,j:longint;
function factor:longint ; forward;
function termen:longint;
var x:longint;
begin
x:=factor;
        while (a[i]='*') or (a[i]='/') do
                if a[i]='*' then
                        begin
                        inc(i);
                        x:=x*factor;
                        end
                        else begin
                        inc(i);
                        x:=x div factor;
                        end;
termen:=x;
end;
function expresie:longint;
var x:longint;
begin
x:=termen;
while (a[i]='+') or (a[i]='-') do
        if a[i]='+' then begin
                        inc(i);
                        x:=x+termen;
                        end
                        else
                        begin
                        inc(i);
                        X:=x-termen;
                        end;
expresie:=x;
end;
function factor :longint;
var x:longint;
begin
x:=0;
if a[i]='(' then begin
                inc(i);
                x:=expresie;
                inc(i);
                end
                else
                while (a[i]<='9') and (a[i]>='0') do begin
                        x:=x*10+ord(a[i])-48;
                        inc(i);
                        end;
factor:=x;
end;
begin
assign(f,'evaluare.in');reset(F);
assign(g,'evaluare.out');rewrite(G);
readln(f,a);
writeln(g,expresie);
close(F);
close(G);
end.