Pagini recente » Cod sursa (job #2584645) | Cod sursa (job #3200767) | Cod sursa (job #1107637) | Cod sursa (job #2213931) | Cod sursa (job #328448)
Cod sursa(job #328448)
var v:array[1..100] of char;
i:longint;
f,g:text;
function tr(var x:longint):longint;
forward;
function p(var x:longint):longint;
var a:longint;
begin
a:=tr(x);
while (v[x]='+') or (v[x]='-') do
begin
x:=x+1;
if v[x-1]='+' then
a:=a+tr(x)
else
a:=a-tr(x);
end;
p:=a;
end;
function fct(var x:longint):longint;
forward;
function tr(var x:longint):longint;
var b:longint;
begin
b:=fct(x);
while (v[x]='*') or (v[x]='/') do
begin
x:=x+1;
if v[x-1]='*' then
b:=b*fct(x)
else
b:=b div fct(x);
end;
tr:=b;
end;
function fct(var x:longint):longint;
var c:longint;
begin
if v[x]='(' then
begin
x:=x+1;
c:=p(x);
x:=x+1;
end
else
begin
c:=0;
while (v[x]>='0') and (v[x]<='9') do
begin
c:=c*10+ord(v[x])-48;
x:=x+1;
end;
end;
fct:=c;
end;
begin
assign(f,'evaluare.in');
assign(g,'evaluare.out');
reset(f);rewrite(g);
while not eoln(f) do
begin
i:=i+1;
read(f,v[i]);
end;
i:=1;
write(g,p(i));
close(f);close(g);
end.