Pagini recente » Cod sursa (job #2064857) | Cod sursa (job #2838885) | Cod sursa (job #2728970) | Cod sursa (job #1783037) | Cod sursa (job #253586)
Cod sursa(job #253586)
const cifre=['0'..'9'];
var v:ansistring;
i:longint;
function eval(var i:longint):longint;forward;
function fac(var i:longint):longint;
var r:longint;
begin
r:=0;
if v[i]='(' then
begin
inc(i);
r:=eval(i);
inc(i);
end
else
if v[i] in cifre then
repeat
r:=r*10+(ord(v[i])-ord('0'));
inc(i)
until not(v[i] in cifre);
fac:=r;
end;
function ter(var i:longint):longint;
var r:longint;
begin
r:=fac(i);
while v[i]in['/','*'] do
begin
if v[i]='/' then
begin
inc(i);
r:=r div fac(i);
end;
if v[i]='*' then
begin
inc(i);
r:=r*fac(i);
end;
end;
ter:=r;
end;
function eval(var i:longint):longint;
var r:longint;
begin
r:=ter(i);
while v[i] in ['-','+'] do
begin
if v[i]='-' then
begin
inc(i);
r:=r-ter(i);
end;
if v[i]='+' then
begin
inc(i);
r:=r+ter(i);
end;
end;
eval:=r;
end;
procedure load;
var f,g:text;
begin
assign(f,'evaluare.in'); reset(f);
assign(g,'evaluare.out'); rewrite(g);
readln(f,v);
i:=1;
writeln(g,eval(i));
close(g);
end;
begin
load;
end.