Pagini recente » Cod sursa (job #559858) | Cod sursa (job #1351672) | Cod sursa (job #2368617) | Cod sursa (job #3280238) | Cod sursa (job #1385257)
program evaluarea_unei_expresii_aritmetice;
var f,g:text;
s:ansistring;
i,n:longint;
function expresie:longint; forward;
function factor:longint;
var x:longint;
begin
if s[i]='(' then
begin
inc(i);
factor:=expresie;
inc(i);
end
else
begin
x:=0;
while (i<=n) and (s[i] in ['0'..'9']) do
begin
x:=x*10+ord(s[i])-ord('0');
inc(i);
end;
factor:=x;
end;
end;
function termen:longint;
var x:longint;
begin
x:=factor;
while (i<=n) and (s[i] in ['/','*']) do
if s[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 (i<=n) and (s[i] in ['+','-']) do
if s[i]='+' then
begin
inc(i);
x:=x+termen;
end
else
begin
inc(i);
x:=x-termen;
end;
expresie:=x;
end;
BEGIN
assign(f,'evaluare.in');reset(f);
read(f,s);
close(f);
i:=1;
n:=length(s);
assign(g,'evaluare.out');rewrite(g);
write(g,expresie);
close(g);
END.