お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"逆ポーランド変換、計算"






「中置記法」の計算式を「逆ポーランド記法」に変換し、計算するルーチンを
作ってみました。

unit ReversePolish;

interface

uses
  SysUtils, Classes;

  procedure Infix2RP(StIn, StOut: TStringList);
  function CalcRPN(St: TStringList): Currency;

implementation

//--------------------------------------------------------------------
function Priority(S: String): Integer;
begin
  S := Trim(S);
  if S = '=' then
    Result := 0
  else if S = ')' then
    Result := 1
  else if S = '+' then
    Result := 2
  else if S = '-' then
    Result := 2
  else if S = '*' then
    Result := 3
  else if S = '/' then
    Result := 3
  else if S = '(' then
    Result := 4
  else
    Result := 5;
end;


//--------------------------------------------------------------------
//  変換処理
 



Original document by 島村 幸一   氏 ID:(MAF01541)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum