Pagini recente » Borderou de evaluare (job #3145503) | Concursuri Virtuale | Cod sursa (job #3297534) | Cod sursa (job #839252) | Cod sursa (job #1070329)
var s:ansistring;
i:longint;
function factor:longint; forward;
function factor2:longint; forward;
function eval:longint;
var v:longint;
begin
v:=factor;
while (s[i]='+') or (s[i]='-') do
begin
if s[i]='+' then begin inc(i); v:=v+factor; ; end
else begin inc(i); v:=v-factor; end;
end;
eval:=v;
end;
function factor:longint;
var v:longint;
begin
v:=factor2;
while (s[i] in ['*','/']) do
begin
if s[i]='*' then begin inc(i); v:=v*factor2; end
else begin inc(i); v:=v div factor2; end;
end;
factor:=v;
end;
function factor2:longint;
var v:longint;
begin
v:=0;
if s[i]='(' then begin inc(i); v:=eval; inc(i); end
else
while (s[i] in ['0'..'9']) do
begin
v:=(v*10)+(ord(s[i])-48);
inc(i);
end;
factor2:=v;
end;
begin
assign(input,'evaluare.in');
reset(input);
readln(s);
s:=s+'#';
assign(output,'evaluare.out');
rewrite(output);
i:=1;
write(eval);
close(output);
end.