PHP スクリプトの解決に行き詰まっています。
一連の命令から結果を計算したい。命令は、1 行ごとにスペースで区切られたキーワードと数字で構成されます。命令はファイルから読み込まれ、結果が画面に出力されます。命令はいくつでも指定できます。命令は演算子 (加算、除算、減算、乗算) です。命令は数学的な優先順位を無視します。最後の指示は「適用」と数字 (「適用 3」など) である必要があります。次に、電卓はその数値で初期化され、前の命令がその数値に適用されます。
[Input]
add 2
multiply 3
apply 3
[Output]
15
これは私が試したことですが、メソッドを完了するためのロジックを取得できません
class Calculator {
public $result = 0;
public $queue = Array();
public parseString($text) {
// parse input string
$cmds = explode(" ", $text);
foreach($cmds as $cmd) {
$cmd = trim($cmd);
if(!$cmd) continue; // blank or space, ignoring
$this->queue[] = $cmd;
}
// lets process commands
$command = false;
foreach($this->queue as $index => $cmd) {
if(is_number($cmd)) {
// if it's number fire previous command if exists
if(!$command || !method_exists($this, $command)) {
throw new Exception("Unknown command $command");
}
$this->$command($index, $cmd);
}else{
$command = $cmd;
}
}
}
public function apply($index, $number) {
// manipulate $result, $queue, $number
}
public function add($index, $number) {
// manipulate $result, $queue, $number
}
public function substract($index, $number) {
// manipulate $result, $queue, $number
}
}
$calculator = new Calculator();
$calculator->parseString('...');
加算、除算、乗算、減算を呼び出すまたは切り替える方法と、適用ワードを区別してトリガーする方法
あらゆる種類の助けをいただければ幸いです。