式の数、未知数の数が4個になると前回のプログラムは使えません。
折角作ったプログラムですので、式の数が増えても使えるようにしましょう。
今回はその準備として、似たような処理を繰り返し書いている部分をFor文を使って1回書くだけで済ませましょう。
Sub 連立一次方程式2() Dim x(3, 4) As Single Dim i As Integer, j As Integer, basho As Integer Sheets(1).Select For i = 1 To 3 For j = 1 To 3 x(i, j) = Selection.Cells(i, j) Next j Next i Sheets(2).Select For i = 1 To 3 x(i, 4) = Selection.Cells(i, 1) Next i Sheets(3).Select basho = 1 Cells(basho, 1).Select For i = 1 To 3 For j = 1 To 4 Selection.Cells(i, j) = x(i, j) Next j Next i Rem (1,1)成分を1にするために第一行を(1,1)成分で割るプログラムを書いてください。 Rem (2,1)成分を0にするために第二行から第一行の(2,1)成分倍を引くプログラムを書いてください。 Rem (3,1)成分を0にするために第三行から第一行の(3,1)成分倍を引くプログラムを書いてください。 Rem (2,2)成分を1にするために第二行を(2,2)成分で割るプログラムを書いてください。 Rem (1,2)成分を0にするために第一行から第二行の(1,2)成分倍を引くプログラムを書いてください。 Rem (3,2)成分を0にするために第三行から第二行の(3,2)成分倍を引くプログラムを書いてください。 Rem (3,3)成分を1にするために第三行を(3,3)成分で割るプログラムを書いてください。 Rem (1,3)成分を0にするために第一行から第三行の(1,3)成分倍を引くプログラムを書いてください。 Rem (2,3)成分を0にするために第二行から第三行の(2,3)成分倍を引くプログラムを書いてください。 basho = basho + 4 Cells(basho, 1).Select For i = 1 To 3 For j = 1 To 4 Selection.Cells(i, j) = x(i, j) Next j Next i End Sub |
この3箇所の色をつけた部分は、それぞれ2回ずつ殆ど似たようなことを書いていますよね。 これをFor文でまとめたいと思います。
Rem (2,1)成分を0にするために第二行から第一行の(2,1)成分倍を引くプログラムを書いてください。
Rem (3,1)成分を0にするために第三行から第一行の(3,1)成分倍を引くプログラムを書いてください。
は
For p=2 to 3
Rem (p,1)成分を0にするために第p行から第一行の(p,1)成分倍を引くプログラムを書いてください。
Next p
と書けば良いですし、
Rem (1,3)成分を0にするために第一行から第三行の(1,3)成分倍を引くプログラムを書いてください。
Rem (2,3)成分を0にするために第二行から第三行の(2,3)成分倍を引くプログラムを書いてください。
は
For p=1 to 2
Rem (p,3)成分を0にするために第p行から第三行の(p,3)成分倍を引くプログラムを書いてください。
Next p
と書けば良いです。では
Rem (1,2)成分を0にするために第一行から第二行の(1,2)成分倍を引くプログラムを書いてください。
Rem (3,2)成分を0にするために第三行から第二行の(3,2)成分倍を引くプログラムを書いてください。
の部分はどうすればよいか、考えてみてください。
0 件のコメント:
コメントを投稿