Pagini recente » Cod sursa (job #2555734) | Cod sursa (job #2611343) | Cod sursa (job #1923586) | Cod sursa (job #545623) | Cod sursa (job #211336)
Cod sursa(job #211336)
var s:array[1..100000] of char;
f,g:text;
rez,i,n:longint;
function suma:longint; forward;
function produs:longint; forward;
function termen:longint; forward;
function suma:longint;
var sum,aux,j:longint;
begin
sum:=produs;
while (s[i] in ['+','-']) do
begin
inc(i); j:=i-1;
aux:=produs;
if s[j]='+' then sum:=sum+aux
else sum:=sum-aux;
end;
suma:=sum;
end;
function produs:longint;
var prod,j,aux:longint;
begin
prod:=termen;
while (s[i] in ['*','/']) do
begin
inc(i); j:=i-1;
aux:=termen;
if s[j]='*' then prod:=prod*aux
else prod:=prod div aux;
end;
produs:=prod;
end;
function termen:longint;
var x:longint;
begin
x:=0;
if s[i]='(' then
begin
inc(i);
x:=suma;
inc(i);
end
else
while (s[i] in ['0'..'9']) do
begin
x:=x*10+ord(s[i])-ord('0');
inc(i);
end;
termen:=x;
end;
begin
assign(f,'evaluare.in'); reset(f);
assign(g,'evaluare.out'); rewrite(g);
i:=0;
while (not(eoln(f))) do
begin
inc(i);
read(f,s[i]);
end;
i:=1;
rez:=suma;
writeln(g,rez);
close(f); close(g);
end.