Pagini recente » Cod sursa (job #1678122) | Cod sursa (job #2874982) | Cod sursa (job #2514035) | Cod sursa (job #1613179) | Cod sursa (job #640223)
Cod sursa(job #640223)
Program expresie;
var a:array [1..100001] of char;
i:longint;
fi,fo:text;
function rez():longint;forward;
function factor():longint;
var v:longint;
begin
v:=0;
if a[i]='(' then begin inc(i); v:=rez(); inc(i); end
else while (a[i]>='0') and (a[i]<='9') do begin
v:=v*10+ord(a[i])-48;
inc(i);
end;
factor:=v;
end;
function termen():longint;
var v:longint;
begin
v:=factor;
while (a[i]='*') or (a[i]='/') do
if a[i]='*' then begin inc(i); v:=v*factor; end
else begin inc(i); v:=v div factor; end;
termen:=v;
end;
function rez():longint;
var v:longint;
begin
v:=termen();
while (a[i]='+') or (a[i]='-') do
if a[i]='+' then begin
inc(i);
v:=v+termen;
end
else begin inc(i); v:=v-termen; end;
rez:=v;
end;
begin
assign(fi,'expresie.in');
assign(fo,'expresie.out');
reset(fi); rewrite(fo);
read(fi,a); i:=1;
write(fo,rez);
close(fo);
end.