第25講 n進数を10進数に翻訳する
第5話 n進数を10進数に翻訳するソフト自己再帰版
コード例
Dim h(100000000) As Byte
Dim m As Long, n As Integer
Private Sub CommandButton1_Click()
Dim a As Integer
Cells(7, 6) = ""
n = Cells(6, 3)
m = Cells(7, 3)
a = f(0)
g (a + 1)
End Sub
Function f(x As Integer)
h(x) = m Mod 10
If h(x) > n - 1 Then
Cells(7, 6) = "n進数の入力が禁則に反しています。各位の数字はn-1以下でなければなりません。正しく入力しましょう。"
f = 1
Exit Function
End If
m = Int(m / 10)
If Int(m / 10) > 0 Then
f = f(x + 1)
Else
h(x + 1) = m Mod 10
If h(x + 1) > n - 1 Then
Cells(7, 6) = "n進数の入力が禁則に反しています。各位の数字はn-1以下でなければなりません。正しく入力しましょう。"
f = 1
Exit Function
End If
f = x
End If
End Function
Sub g(x As Integer)
Dim w As Long, i As Integer
w = h(x)
For i = x - 1 To 0 Step -1
w = n * w + h(i)
Next
Cells(8, 3) = w
End Sub
Private Sub CommandButton2_Click()
Range("c8:c20").Select
Selection.ClearContents
Cells(7, 6) = ""
Range("A1").Select
End Sub
また、課題です。
Sub g(x As Integer)
Dim w As Long, i As Integer
w = h(x)
For i = x - 1 To 0 Step -1
w = n * w + h(i)
Next
Cells(8, 3) = w
End Sub
の
w = h(x)
For i = x - 1 To 0 Step -1
w = n * w + h(i)
Next
の部分も関数の再帰的呼び出しにするにはどうしたらよいでしょうか。
第4話へ 第6話
VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る