第5講 プロシージャ(1)
第4話 引数について
前話で
Module Module1
Sub Main() '私は社長だ。
Call f(0) 'f()君、仕事をしなさい!
End Sub
Sub f(k As Integer) '私は社員です。
Console.WriteLine ("こんにちは!")
Call g(k) 'g()君、仕事お願い!
End Sub
Sub g(k As Integer) '私は社員です。
Console.WriteLine ("今日は良い天気ですね。")
k += 1
If k < 5 Then Call f(k) 'f()君、仕事お願い!
End Sub
End Module
導入したf(0) g(k) f(k) の括弧の中の数字を引数といいます。
引数は『いんすう』と読んでしまう人が多いと思いますが、『ひきすう』と読みます。
今回の導入した引数は整数ですので、
ピンクで修飾してあります。
引数のタイプが整数型であることを示しています。
もっとわかりやすい例にするために、
コードを次のように変更して下さい。
Module Module1
Sub Main() '私は社長だ。
Call f(10) 'f()君、仕事をしなさい!
End Sub
Sub f(k As Integer) '私は社員です。
Dim i, w As Integer 'iはFor文の制御変数 wは和を積算する整数
w = 0 '0に初期化
For i = 1 To k
w += i
Next
Console.WriteLine("1から{0:d}までの和={1:d}", k, w)
End Sub
End Module
社員f()の仕事は、1から引数までの和を求める仕事です。
今回は10ですから、1から10までの和を算出する仕事を求められたわけです。
引数は複数指定できます。
例えば、コードを次のように変更すると、
Module Module1
Sub Main() '私は社長だ。
Call f(3, 10) 'f()君、仕事をしなさい!
End Sub
Sub f(s As Integer, m As Integer) 's:初項 m:末項
Dim i, w As Integer 'iはFor文の制御変数 wは和を積算する整数
w = 0 '0に初期化
For i = s To m
w += i
Next
Console.WriteLine("{0:d}から{1:d}までの和={2:d}", s, m, w)
End Sub
End Module
3から10までの和=52
となります。第1話で仕事の内容を伝えることがあると書きました。
今回はf(3,10)の3と10によって初項と末項を与えられて、
3から10の和を求めました。
仕事の内容が引数によって規定されたのです。
では皆さん、引数を利用して、
@引数(は1つ)を2倍にして表示するプログラム
A引数を初項・交差・末項にして等差数列の和を計算。ただし、初項3・交差2・末項11とする。
B引数を初項・交差・末項にして等差数列の和を計算。ただし、引数の各値はMain()においてキーボード上から取得。
C引数をa,b,cとしてa*b+cを表示させるプログラム。ただし、a,b,cはMain()おいてキーボードから取得。