Постфиксное выражение – это числовое выражение, в котором сначала записываются операнды, а затем знак операции. Например: 3 5 + означает 3+5. Особенностью постфиксных выражений является то, что при их записи скобки не нужны. Например, выражение (3+4*2)/3-1 можно записать так: 3 4 2 * + 3 / 1 -. Написать программу вычисления постфиксного выражения, содержащего цифры и знаки арифметических операций. Операнды и операции разделяются пробелами.
Answers & Comments
stack : array [1..1000] of double;
op1, op2 : double;
i : integer;
c : char;
begin
i := 0;
while not eoln do
begin
read (c);
if c in ['0'..'9'] then
begin
inc (i);
stack[i] := ord (c) - ord ('0');
end
else if c <> ' ' then
begin
if i < 2 then
begin
writeln ('Error!'); halt;
end;
op2 := stack[i];
dec (i);
op1 := stack[i];
case c of
'+' : stack[i] := op1 + op2;
'-' : stack[i] := op1 - op2;
'*' : stack[i] := op1 * op2;
'/' : stack[i] := op1 / op2;
end;
end;
end;
if i <> 1 then
writeln ('Error!')
else
writeln (stack[i]);
end.