Pagini recente » Cod sursa (job #366848) | Cod sursa (job #132290) | Monitorul de evaluare | Cod sursa (job #1529517) | Cod sursa (job #843933)
Cod sursa(job #843933)
program expresie;
var f1,f2:text;
s:array [0..100000] of char;
i:longint;
function factor:longint; forward;
function termen:longint;
var x:longint;
begin
x:=factor;
while (s[i]='*') or (s[i]='/') do
begin
if s[i]='*' then begin inc(i); x:=x*factor; end
else begin inc(i); x:=x div factor; end;
end;
termen:=x; writeln(x,' termen');
end;
function expresie:longint;
var x:longint;
begin
x:=termen;
while (s[i]='+') or (s[i]='-') do
begin
if s[i]='+' then begin inc(i); inc(x,termen); end
else begin inc(i); dec(x,termen); end;
end;
expresie:=x; writeln(x,' expresie');
end;
function factor:longint;
var x:longint;
begin
x:=0;
if s[i]='(' then
begin
inc(i);
x:=expresie;
inc(i);
end
else while s[i] in ['0'..'9'] do
begin
x:=x*10+ord(s[i])-48;
inc(i);
end;
factor:=x; writeln(x,' factor');
end;
begin
assign(f1,'evaluare.in');
reset(f1);
assign(f2,'evaluare.out');
rewrite(f2);
readln(f1,s);
writeln(f2,expresie);
close(f1);
close(f2);
end.