A = "(logf(8)/logf(2) + sqrt(4))*cos(0)" mes double(A)
もしこれで「5.00000」と表示されたらどんなに嬉しいでしょう! ですが、そんなことはできませんから、 これまではユーザーから与えられた数式の値を求めることはできませんでした。
しかし、本モジュール「Mod_fx」はそれを可能にするのです!!!
A = "(log[2,8] + sqrt[4])*cos[0]" mes Mod_fx(A,0,0,0)
これで「5.00000」と表示されます。 しかもこれだけではありません。x,y,zの3変数を扱えるのです。 式中に変数を置いておけば、自由に値を代入できるのです。 数学関数のパラメータ囲みに()ではなく[]を使うという制約がありますが、 それ以外は数学の記述ルールとほとんど同じです。 サポートされている数学及びコンピュータ関数は21種類!
コンテストに応募させていただくということで、モジュールだけではなく、それを利用したサンプルが必要だと思い、「sample.exe」として作ってあります。ですが、あくまでもミソはモジュールです。
このモジュールを使えば、関数グラフ作成ソフトや関数電卓とかが....!?
さあ、ここまで読んでしまった貴方! Let's try!
|
No.6 [FunnyMaker]さんが作品にコメントしました - 2012/11/02 18:09:20
スコーピオンさん、ご評価ありがとうございます。
>保証する有効桁が判れば、業務用ソフトの期待値比較(答え合わせ)にも使えそうです。
恐縮です。 計算の精度ですが、HSPにプログラムの一部として数式を組み込んだ時と同じになります。-2147483648〜2147483647の範囲で有効数字は16桁になると思います。
|
No.5 [スコーピオン]さんが作品を評価しました( アイデア ) - 2012/11/01 00:02:28
素晴らしいです。 HSPの可能性が広がるコンテンツだと思います。 保証する有効桁が判れば、業務用ソフトの期待値比較(答え合わせ)にも使えそうです。
|
No.4 [FunnyMaker]さんが作品にコメントしました - 2012/10/23 23:00:29
yamahubukiさん、GENKIさん、あつぎりさん、ご評価ありがとうございます。
「文字列化された数式をどうにかして計算したい...」という思いから、製作を決意したのでした。
同じように考えている人がいるのだと分かり、作った意義があったのだなぁ、と感じています。
今後、より多くの(しかし厳選した)関数に対応したり、計算の高速化を目指すつもりです。ご期待ください。
|
No.3 [あつぎり]さんが作品を評価しました( 技術 アイデア ) - 2012/10/23 21:22:04
|
No.2 [GENKI]さんが作品を評価しました( 技術 完成度 ) - 2012/10/23 20:16:58
これはすごい。 この手の機能への質問は掲示板でたまに見かけるので需要はたくさんありそうですね。 ツール系のソフトなんかで活躍しそうです。
HSPの配布パッケージにつかないかな…。
|
No.1 [yamahubuki]さんが作品を評価しました( 技術 ) - 2012/10/23 11:58:59
こんなこと、できるのですね。 なんとなくできる気はしていたのですが、やり方が全く分かりませんでした。 ソースを同梱していただいているので、なんとか研究し、私もできるようになりたいと思います。
|