Pagini recente » Cod sursa (job #1688279) | Cod sursa (job #2911735) | Cod sursa (job #2864401) | Cod sursa (job #2549121) | Cod sursa (job #538685)
Cod sursa(job #538685)
const f = 'evaluare.in';g = 'evaluare.out';
const max = 100001;
var
s : array [1..max] of char;
i : longint;
function termen : longint;forward;
function factor : longint;forward;
function eval : longint;
var
r : longint;
begin
r := termen;
while (s[i] = '+') or (s[i] = '-') do
begin
if s[i] = '+' then begin inc( i );r := r+termen; end;
if s[i] = '-' then begin inc( i );r := r-termen; end;
end;
eval := r;
end;
function termen : longint;
var
r : longint;
begin
r := factor;
while (s[i] = '*') or (s[i] = '/') do
begin
if s[i] = '*' then begin inc( i );r := r*factor; end;
if s[i] = '/' then begin inc( i );r := r div factor; end;
end;
termen := r;
end;
function factor : longint;
var
r : longint;
begin
r := 0;
if s[i] = '(' then
begin
inc( i );
r := eval;
inc( i );
end
else
begin
while (s[i] >= '0') and (s[i] <= '9') do
begin
r:=r* 10+ ord( s[i] )- ord( '0');
inc( i );
end;
end;
factor:=r;
end;
begin
assign( input,f );reset( input );
assign( output,g );rewrite( output );
while not eof( input ) do
begin
inc( i );
read( s[i] );
end;
i:=1;
writeln(eval);
close( input );close( output );
end.