wetchのブログ

他人に見られることを想定していない書き散らかし独習ノート.物理学とかVBAとか.

VBAで物理量クラスを作りたい

エクセルvbaのクラスモジュールってのを勉強中。

目的は物理学関係の数式を計算するときに、単位っちゅうか次元も変数の文字の中に含めたい。で、例えばキロからメガへの換算とか、次元が異なる変数の加算にはエラーを返すとか、そういうのをプログラムしたいのだけど。

どうやって設計したらいいかなあ。まずは力学の分野に絞るとして、次元は質量、長さ、時間の3つだけとする。

  • 1つの変数は数値と次元をもっていて、2つの変数の加算は次元が一致していないとダメ。
  • 単位換算できるように、特定の基準単位から見た換算係数も一緒に持っている必要がある。基準はやっぱSI単位か。
  • 出力値の単位をどうやって指定する? 2つの変数の加算をするときは必ず2番目の変数の単位で返すようにするか。
  • 物理量の数値部分は実数だけど、それぞれの次元は有理数に限定される? 物理量クラスの前に有理数クラスが必要か?

と言うか、そもそもこれ誰か開発してないのか。ちょっと探した限りでは見つからないのだけど。


追記:
先例をやっと見つけた。こういうのは流石と言うべきかWolfram。
reference.wolfram.com