Основы программирования. Файлы. Рекурсия - 34 стр.

UptoLike

Составители: 

36
end
end;
end;
function Term: integer;
begin
Result:=Factor;
while CurSym='*' do
begin
MoveNext;
Result:=Result*Factor;
end;
end;
function Factor: integer;
begin
if CurSym='(' then
begin
MoveNext;
Result:=Expr
end
else Result:=Num; // CurSym является цифрой
MoveNext;
end;
begin // Calc
ns:=0;
MoveNext;
Result:=Expr;
end;
begin // основная программа
writeln(Calc('1+2-4'));
end.
Обратим внимание на то, что процедура
MoveNext должна быть вызвана пе-
ред каждой функцией грамматики и, в частности, в начале функции
Calc.
2.10 Перевод формулы в префиксную форму
Обычной формой записи выражений является инфиксная. В ней знак бинар-
ной операции op записывается между операндами: A op B. Если знак бинарной
операции записывается перед операндами, то такая форма запись называется пре-
фиксной: op A B. Если же знак бинарной операции записывается после операндов,
то форма записи выражения называется постфиксной: A
B op.