Re: Парсер математических выражений

From
Andrew Ezhguroff ()
To
Alexander Kolosov
Date
2002-05-11T17:40:25Z
Area
RU.ALGORITHMS
From: "Andrew Ezhguroff" <eandr@com2com.ru>

Привет! "Alexander Kolosov" <Alexander.Kolosov@p12.f14.n5038.z2.fidonet.org>
сообщил(а):

 AM>>   Обратная польская нотация. Лучше всего имхо делать с ней.
 AK> Я, конечно, в инете посмотрю, но можно немного поподробнее о том что
 AK> такое польская нотация.

Прямая польская запись - все операции записываются в префиксной форме
(сначала символ операции, потом операнды), обратная польская - в постфиксной
(сначала операнды, потом операция).

Так выражение (a-b)*(c+d) в прямой польской записи выглядит (если не
ошибаюсь):

* - a b + c d

а в обратной польской (это уже точно):

a b - c d + *

Обратная польская запись очень удобна для вычислений (операнды заносятся в
стек, операции извлекают операнды из стека и кладут результат обратно в
стек) и большинство парсеров переводит выражение именно в постфиксную форму.

С уважением, Андрей.



-- 
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
 * Origin: Talk.Mail.Ru (2:5020/400)