第6講 Functionプロシージャ

第3話 複数の引数によるによる等差数列の和

複数の引数による等差数列の和コード例
Private Sub CommandButton1_Click()

  Dim h As Long, o As Long, b As Long

  h = Cells(5, 2)
  o = Cells(6, 2)
  b = Cells(7, 2)

  Cells(8, 2) = f(h, o, b)

End Sub


Function f(h As Long, o As Long, b As Long)

  Dim w As Long, i As Long

  w = 0
  For i = h To o Step b
    w = w + i
  Next

  f = w

End Function


Private Sub CommandButton2_Click()

  Columns("B").Select
  Selection.ClearContents
  Cells(1, 1).Select

End Sub
実行例
q1


次は、円の一部の面積を求める計算を考えます。
q2
指定するのは、半径、x軸と赤の交点、x軸と青の交点です。
要するに、半径と積分範囲の始めと終わりを引数にして、面積を計算させたいわけです。

この面積を計算させるためには
q3小さい長方形に分けて、その面積を加えていけば求められます。
半径r円の方程式は、q4です。
q5
始まりをa、終わりのbとし、小さい長方形の横をd(例えば1000個の長方形に分ければ、d=(b−a)/1000)とすると、
長方形の面積は、
q6

何個の長方形に分割するかによって、面積の精度が異なります。
分割個数を増やせば増やすほど、面積の精度が高く(つまり、誤差が小さく)なります。
そこで、分割個数kも引数とします。
このときは、もちろんd=(b−a)/kです。
したがって、面積を求めるFuncitonプロシージャfは、f(r,a,b,k)として呼び出すことにします。
そして、r,a,b,kの値はシートから入力するものとします。
q7
さらに、精度を調べるため r=1,a=0,b=1の場合の面積の4倍も、求める面積の下に表示させるものとします。
r=1,a=0,b=1の場合の面積の4倍は、半径1の面積に相当しπになります。
したがって、πの近似値を求めさせていることになります。
分割個数をkを大きくすると、πに近づいていきます。

大変難しい課題になってしまって申し訳ありませんが、是非挑戦されてください。


第2話へ 第4話へ

004


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

数学研究室に戻る