- ベストアンサー
尺貫法
ビジュアルベーシックで1里=36町 1町=60間 1間=6尺 1尺=10寸。入力された寸数を里・町・間・尺・寸に変換するプログラムが作れません。どなたか教えていただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Sub test01() n = 150002 '1例のデータ t = Array(10, 6, 60, 36) u = Array("寸", "尺", "間", "町", "里") For i = 0 To 3 m = n Mod t(i) s = m & u(i) & s ' MsgBox s n = Int(n / t(i)) Next s = n & u(4) & s MsgBox s End Sub 0寸を出さないようにするにはM=0の時、 s = m & u(i) & s をスキップする。 Sub test01() n = 150002 t = Array(10, 6, 60, 36) u = Array("寸", "尺", "間", "町", "里") For i = 0 To 3 m = n Mod t(i) If m = 0 Then Else s = m & u(i) & s End If ' MsgBox s n = Int(n / t(i)) Next s = n & u(4) & s MsgBox s End Sub これでどうでしょうか。思い違いや、エラーがあるかもしれませんので、十分テストしてください。
その他の回答 (2)
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
計算するだけです。 作りは http://okwave.jp/kotaeru.php3?q=1691688 です。 >プログラムが作れません 具体的に何ができないのかわからないので、一度やってみて、何ができないかの詳細を書いてください。
「寸数」の単位は?。 業界にょって基準単位が異なります。 きんこう関係はミリですし.もっこうはセンチ.測量はメートルかキロメートル。 文字列を使った無限桁数演算は作れますね。 AAAABBCCDDEE AAAAがり BBがちょう CCがけん DDが尺 EEがすん の桁とします。ただし.これは表記用。 演算用には無限桁を割り当てます。 A B C D E の4つの変数を用意します。 入力した値をもっとも単純に換算できる桁.ミリやセンチならば.寸(変数E)でしょう。 変数Eに設定して.10を超える入力があると桁あふれが発生します。桁あふれの分を求めて(E\10とE mod 10).あふれた分はDに, あふれていない部分はEに残します(ここでは最小桁なので小数部の処理は略)。 以後桁あふれがなくなるまで続けます。
お礼
回答ありがとうございました。これを参考にしてできました。ありがとうございます。