物理の授業で出てくる波の方程式を理解させるには実際にVBなどでグラフを描くのがいいと思います。ここでは物理の授業で実践した波の方程式(y=振幅*sin(t/周期-x/波長))を理解させるためのプログラミングを紹介します。
- 波の方程式の波長、振幅を変化させるとどうなるかを理解させる。
- 波の重ね合わせの原理を理解させる。
- うなりのしくみを理解させる。
(1)フォームにPicture1とCommand1を置きます。
(2)コード〜「Command1」ボタンをダブルクリックして以下のコードを打ち込む。
Private Sub Command1_Click()
Dim x, y1 As Single
Picture1.Line (0, 1000)-(10000, 1000),
QBColor(4)
For x = 0 To 10000
y1 = 500 * Sin(x / 30)
Picture1.PSet (x, y1 + 1000), QBColor(9)
Next x
End Sub |
1行目 コマンド1をクリックしたらEndSubまでのプログラムを実行すますよ。
2行目 xとy1の2つの変数を使いますよ。
3行目 x軸を引きます。色は4番(赤)にしましょう。
4行目 For to 〜Nextの範囲を、xの値が1から1万になるまで繰り返します。
5行目 y1 = 振幅* Sin(x / 波長)
6行目 指定された座標に点を打ちます。 |
(3)実行結果
(4)発展〜波長と周期をいろいろ変えてプログラムを実行しましょう。
(1)コード(赤字が課題1に追加した部分)
Private Sub Command1_Click()
Dim x, y1, y2 As Single
Picture1.Line (0, 1000)-(10000, 1000),
QBColor(4)
For x = 0 To 10000
y1 = 500 * Sin(x / 30)
y2 = □ * Sin(x /□)
Picture1.PSet (x, y1 + 1000), QBColor(9)
Picture1.PSet (x, y2 + 1000), QBColor(10)
Picture1.PSet (x, y1 + y2 + 1000), QBColor(14)
Next x
End Sub |
(1)コード(赤字が課題1に追加した部分)
Private Sub Command1_Click()
Dim x, y1, y2 As Single
Picture1.Line (0, 1000)-(10000, 1000),
QBColor(4)
For x = 0 To 10000
y1 = 500 * Sin(x / 30)
y2 = 500 * Sin(x / 29)
Picture1.PSet (x, y1 + 1000), QBColor(9)
Picture1.PSet (x, y2 + 1000), QBColor(10)
Picture1.PSet (x, y1 + y2 + 1000), QBColor(14)
Next x
End Sub |
(2)実行結果
黄色の波形が合成波。うなり(振幅の強弱)が観測できる。
|