###前提・実現したいこと
2次元の拡散方程式を解くプログラムをVBで作っています。
実行しても、次のエラーで止まってしまいます。
初心者なんで、全くわからないです。
###発生している問題・エラーメッセージ
インデックスが配列の境界外です。
###該当のソースコード
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call Cl_ion_Calculate()
End Sub
Sub Cl_ion_Calculate() Dim b, h, wcr, ic, bc, dx, dy, dt, t, tmax, rx, ry As Double Dim i, j, l, m, n, p, q, r, s, x, y As Integer Dim c1(x, y), c2(x, y) As Double b = Val(TextBox1.Text) h = Val(TextBox2.Text) wcr = Val(TextBox3.Text) dx = Val(TextBox4.Text) dy = Val(TextBox5.Text) dt = Val(TextBox6.Text) ic = Val(TextBox7.Text) bc = Val(TextBox8.Text) tmax = Val(TextBox9.Text) t = tmax / dt x = b / dx y = h / dy rx = dt / dx ^ 2 ry = dt / dy ^ 2 For i = 0 To x For j = 0 To y c1(i, j) = ic ←ここで止まります。 Next j Next i For l = 1 To t For m = 1 To x c2(m, 0) = bc Next m For n = 1 To y c2(0, n) = bc c2(b, n) = bc Next n For p = 1 To x - 1 For q = 1 To y - 1 c2(p, q) = (1 - 2 * rx) * c2(p, q) + rx * c2(p - 1, q) + rx * c2(p + 1, q) + (1 - 2 * ry) * c2(p, q) + ry * c2(p, q - 1) + ry * c2(p, q + 1) Next Next For r = 0 To x For s = 0 To y c1(r, s) = c2(r, s) Next Next Next MsgBox(c2(r, s)) End Sub
End Class
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。