第9講 プロシージャの再帰的使用
第2話 プロシージャの再帰的使用にって1から10までの和を実現する
実行画面が
a=0
a=1
a=2
a=3
a=4
a=5
a=6
a=7
a=8
a=9
となるコード例
Module Module1
Sub Main() '私は社長だ。
f(0)
End Sub
Sub f(a As Integer)
Console.WriteLine("a={0:d}", a)
If a + 1 < 10 Then f(a + 1)
End Sub
End Module
これを少し改良すると、
1+2+3+・・・+10を計算させることが出来ます。
そのコードと実行画面は、
Module Module1
Sub Main() '私は社長だ。
Console.WriteLine("1から10までの和は{0:d}です。", f(10))
End Sub
Function f(a As Integer)
Dim w As Integer
If a - 1 >= 0 Then w = f(a - 1) Else w = 0
w += a
Return w
End Function
End Module
と
1から10までの和は55です。
です。
初心者どころかある程度プログラミングになれている人でも
?!?!?????!
ではないでしょうか。
私が、再帰的使用を分身の術と呼ぶと同時に、
入れ子式人形に例えるのは、
この難解なプログラムを理解するにぴったりであると考えるからです。
では、次話では入れ子人形の比輸を使って、
難解なプログラムを初心者の方にも理解できるように、
氷解させます。