首頁 >後端開發 >php教程 >如何使用調車場演算法建立 PHP 計算器?

如何使用調車場演算法建立 PHP 計算器?

Linda Hamilton
Linda Hamilton原創
2024-12-06 08:48:11652瀏覽

How Can I Build a PHP Calculator Using the Shunting Yard Algorithm?

如何使用PHP 建立計算器

問題:

您想要開發一個用於計算簡單代數的PHP計算器使用者以標準符號輸入的表達式,顯示評估過程。挑戰在於有效計算表達式的值。

答案:

考慮使用調車場演算法,因為它在計算代數表達式方面簡單且有效率。

調車場演算法實作

表達式定義:

建立類別來表示表達式的不同元素,例如括號、數字、運算符等:

class Parenthesis extends TerminalExpression { ... }
class Number extends TerminalExpression { ... }
class Addition extends Operator { ... }
class Subtraction extends Operator { ... }
class Multiplication extends Operator { ... }
class Division extends Operator { ... }
class Power extends Operator { ... }

堆疊實作:

class Stack {

    protected $data = array();

    // ... Methods for pushing, popping, and peeking from the stack ...
        
}

執行器類別:

執行器類別使用Shunting Yard演算法解析式並計算它:

class Math {

    // ... Fields and methods for parsing, running, and evaluating the expression ...
        
}

範例:

以下是如何使用計算器的範例:

$math = new Math();

$answer = $math->evaluate('(2 + 3) * 4');
var_dump($answer);
// int(20)

$answer = $math->evaluate('1 + 2 * ((3 + 4) * 5 + 6)');
var_dump($answer);
// int(83)

以下是如何使用計算器的範例:

此範例涵蓋分組和運算子優先。但是,您可以自訂實作以滿足您的特定要求。

以上是如何使用調車場演算法建立 PHP 計算器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn