Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.15;
Скачать: CL | DM;

Вниз

унарный минус   Найти похожие ветки 

 
sat ©   (2007-03-23 00:31) [0]

у меня есть программа которая вычисляет выражения в обратной польской записи(+,-,*,/). Подскажите как мне переделать прогу чтобы появился и унарный минус. Прога стандартная


var
 Stack : TStack;
 s ,z ,y : string;
 i , a, b: integer;
begin
Stack :=  TStack.Create;
with stack do begin
 s:=Edit1.Text;
z:="";
y:="";
i:=1;
 while length(s)<>0 do
   begin
    if not (s[i] in znaki) then
     begin
      while s[i]<>" " do
       begin
        z:=z+s[i];
        inc(i);
       end;
      delete(s,1,i);
      Push(Pointer(StrToInt(z)));
      i:=1;
      y:=z;
      z:="";
     end
    else
     begin
        pointer(a):=pop;
        pointer(b):=pop;
      case s[i] of
       "+": begin
             Push(Pointer(a+b));
            end;
       "-": begin
             Push(Pointer(b-a));
            end;
       "*": begin
             Push(Pointer(b*a));
            end;
       "/": begin
             Push(Pointer( round(b/a) ));
            end;
      end;
      delete(s,1,2);
     end;
    end;
pointer(a):=pop;
Edit2.Text:=FloatToStr(a);
end;



 
sat ©   (2007-03-23 00:32) [1]

да и еще описано

const   znaki = ["+","-","*","/"];


 
Германн ©   (2007-03-23 01:34) [2]

Открыл тут свой старый архив от сентября 97-го, где я работал с обратной польской записью и понял, что уже голова не варит :(


 
MBo ©   (2007-03-23 06:51) [3]

Или использовать специальный символ для унарного минуса, или сделать операцию бинарной (-a => 0 - a)



Страницы: 1 вся ветка

Текущий архив: 2007.04.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
5-1137671677
Игорь Шевченко
2006-01-19 14:54
2007.04.15
Как автоматизировать замену значений свойств в формах ?


15-1174620432
Slider007
2007-03-23 06:27
2007.04.15
С днем рождения ! 23 марта


15-1174242088
iZEN
2007-03-18 21:21
2007.04.15
Охота на нелицензионные Линуксы началась...


15-1174563175
Post_
2007-03-22 14:32
2007.04.15
Логика построения БД.


15-1174460339
Romas81
2007-03-21 09:58
2007.04.15
Поменял 17-ку CRT на 17-ку TFT