Pagini recente » Cod sursa (job #969978) | Cod sursa (job #2800035) | Cod sursa (job #689326) | Cod sursa (job #942915) | Cod sursa (job #744266)
Cod sursa(job #744266)
program evaluare;
var a:array[1..100000] of char;
i:longint;
b:array[1..1 shl 17] of char;
function rez:longint;forward;
function factor:longint;
var x:longint;
begin
x:=0;
if a[i]='(' then begin i:=i+1; x:=rez; i:=i+1; end
else while (a[i]>='0')and(a[i]<='9') do begin
x:=x*10+ord(a[i])-48;
i:=i+1;
end;
factor:=x;
end;
function termen:longint;
var y:longint;
begin
y:=factor;
while (a[i]='*')or(a[i]='/') do
if a[i]='*' then begin i:=i+1; y:=y*factor;end
else begin i:=i+1; y:=y div factor; end;
termen:=y;
end;
function rez:longint;
var v:longint;
begin
v:=termen;
while (a[i]='+')or(a[i]='-') do
if a[i]='+' then begin
i:=i+1;
v:=v+termen;
end
else begin
i:=i+1;
v:=v-termen;
end;
rez:=v;
end;
begin
assign(input,'evaluare.in');settextbuf(input,b); reset(input);
assign(output,'evaluare.out'); rewrite(output);
read(a);
close(input);
i:=1;
write(rez);
close(output);
end.