重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!goo新規会員登録

VisualC#.NETを用いて、単位換算を主目的としたアプリケーションを作ろうと計画しています。

ラジオボックスやコンボボックスを用いて換算前の単位・換算後の単位を指定し、換算結果を表示させたい場合、どのような記述になるのでしょうか?ifを使い、一つずつの計算法を追加記述するしかないのでしょうか?


御教授のほど宜しくお願い致します。

A 回答 (2件)

たいていの換算可能な単位は「単純に定数を掛けるだけ」で換算できますから、単位と換算定数の一覧を配列やリストで持っておけば事足ります。

個々の単位ごとに条件分岐をする必要はありません。

なお、「m」→「kg」のように換算できない単位の関係もありますから、「換算できる単位はどれか」を示す情報も一覧に入れておくほうがよいでしょう。
    • good
    • 0
この回答へのお礼

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

引き続き、ご教授いただければ幸いです。

お礼日時:2005/10/05 09:13

#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の変換手数はα×βです。

これらの法則を理解して登録パターンを減らすことができますが、コーディングがその分発生することになりますので、どちらがよいとも言えません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/10/06 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!