第25講 n進数を10進数に翻訳する
第3話 n進数を10進数に翻訳するソフト解答例

コード例
Private Sub CommandButton1_Click()
  Dim m As Long, n As Integer
  n = Cells(6, 3)
  m = Cells(7, 3)
  f n, m
End Sub
Sub f(n As Integer, m As Long)
  Dim a As Long
  Dim i As Long, j As Long, h(100000000) As Byte, w As Long
  w = m
  a = 0
  Do While w > 0
    w = Int(w / 10)
    a = a + 1
  Loop
  For i = 0 To a - 1
    w = 1
    For j = 0 To i
      w = w * 10
    Next
    h(a - i - 1) = Int((m Mod w) / (w / 10))
  Next
  w = h(0)
  For i = 1 To a - 1
    w = n * w + h(i)
  Next
  Cells(8, 3) = w
End Sub
Private Sub CommandButton2_Click()
  Range("c6:c8").Select
  Selection.ClearContents
  Range("A1").Select
End Sub
実行画面例
入門


さて、今回n進数なら、各位の数字はn-1以下でなければならないの規則処理をしていません。
例えば、
2進数
という不正な入力に対しても答えを出してしまいます。
そこで、不正な入力である場合
3進数
と表示できるように、変更してください。正しく、入力し直して実行するとコメント文も自動的に消えるようにしてください。


第2話へ 第4話

004
  


VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る