• ベストアンサー

単位換算について

VisualC#.NETを用いて、単位換算を主目的としたアプリケーションを作ろうと計画しています。 ラジオボックスやコンボボックスを用いて換算前の単位・換算後の単位を指定し、換算結果を表示させたい場合、どのような記述になるのでしょうか?ifを使い、一つずつの計算法を追加記述するしかないのでしょうか? 御教授のほど宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

たいていの換算可能な単位は「単純に定数を掛けるだけ」で換算できますから、単位と換算定数の一覧を配列やリストで持っておけば事足ります。個々の単位ごとに条件分岐をする必要はありません。 なお、「m」→「kg」のように換算できない単位の関係もありますから、「換算できる単位はどれか」を示す情報も一覧に入れておくほうがよいでしょう。

HAL9999
質問者

お礼

ありがとうございます。初心者ということでご容赦いただければありがたいのですが「一覧を配列やリストで持っておけば」とは、どのような構文を指すのでしょうか? 換算できない単位については、タブページで区分けするレイアウトをしくつもりなので、大丈夫だとは思うのですが。 引き続き、ご教授いただければ幸いです。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

#1のxcrOSgS2wYさんは、変換パターンをDB化することを薦めているいるのですよー 私もそれしかないと思います。 単純な作りとしては、2テーブルを用意 桁マスタテーブル ・桁ID(1,2,3,4・・・)[キー項目] ・桁名(mm,cm,m,km・・・) 変換パターンテーブル ・桁ID1(1,1,1,2,・・・)[キー項目] ・桁ID2(2,3,4,3,・・・)[キー項目] ・変換定数(10,1000,・・・) で、IF分岐をするのではなく、変換定数を取得してあげれば、メンテナンスもしやすくなります。 ある程度理解してから、この以下を読んでください。 変換テーブルの記入方法は、パターンを絞り込むと、登録パターンを全部網羅する必要がなくなります。 [変換パターンテーブル]より (1)桁ID1=1/桁ID2=4 が解れば (2)桁ID1=4/桁ID2=1 の変換定数は、(1)の逆数です (1)桁ID1=1/桁ID2=2の変換手数がα (2)桁ID1=2/桁ID2=4の変換手数がβ のとき、 桁ID1=1/桁ID2=4の変換手数はα×βです。 これらの法則を理解して登録パターンを減らすことができますが、コーディングがその分発生することになりますので、どちらがよいとも言えません。

HAL9999
質問者

お礼

テーブルを用意するという項目から、まずは勉強ししかるのちに下部のものをためしてみます。データベース化するという発想はありませんでした。ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A