2

私の仕事は、中置記法(変数、単項および二項演算子を含む)で式を読み取り、それをメモリに保存してから評価するアプリ(残念ながらCで)を作成することです。また、正確性のチェックも実行する必要があります。

例えば:

3*(A+B)-(-2-78)*2+(0*A)

すべての値を取得したら、プログラムで計算する必要があります。

質問は次のとおりです。これを行う最善の方法は何ですか?(最適化と検証を使用して)

ツリーのベースとして選択する表記法は?

式をツリーで表現する必要がありますか? もしそうなら、私はそれを簡単に最適化できます(0またはsmthを返すノードをドロップするだけです)。

乾杯、

4

2 に答える 2

0

あなたの質問は、ソリューションに課せられている要件を示唆しています。

残念ながらCで

したがって、ここでのいくつかの提案は許可されない場合があります。それにもかかわらず、これは解決するのが非常に複雑な問題であり、これを行うために C コードにリンクできる適切な既存のライブラリを見つけようとする方がはるかに良いと思います。これにより、コードを機能させるために必要な時間と労力が削減され、継続的なメンテナンスの労力が削減される可能性があります。もちろん、ライセンスについて考える必要がありますが、これをうまく処理できる優れた解析/評価ライブラリが「そこに」なかったら、私は驚くでしょう。

于 2009-10-22T08:20:31.590 に答える