Pagini recente » Cod sursa (job #2509350) | Cod sursa (job #2205810) | Cod sursa (job #1927578) | Cod sursa (job #1315823) | Cod sursa (job #768227)
Cod sursa(job #768227)
program evaluare_exp;
var s:array[1..1000000] of char;
i:longint;
fi,fo:text;
function expresie:longint;forward;
function factor:longint;
var x:longint;
begin
x:=0;
if s[i]='(' then begin
i:=i+1;
x:=expresie;
i:=i+1;
end
else
while (s[i]<='9') and(s[i]>='0') do begin
x:=x*10+ord(s[i])-48;
i:=i+1;
end;
factor:=x;
end;
function termen:longint;
var y:longint;
begin
y:=factor;
while (s[i]='*') or (s[i]='/') do
if s[i]='*' then begin
i:=i+1;
y:=y*factor;end
else begin
i:=i+1;
y:=y div factor;
end;
termen:=y;
end;
function expresie:longint;
var z:longint;
begin
z:=termen;
while (s[i]='+') or(s[i]='-') do
if s[i]='+' then begin i:=i+1; z:=z+termen;end
else begin i:=i+1; z:=z-termen;end;
expresie:=z;
end;
begin
assign(fi,'evaluare.in');reset(fi);
read(fi,s);
assign(fo,'evaluare.out');rewrite(fo);i:=1;
write(fo,expresie);
close(fi);close(fo);
end.