2006-12-20

第13回講義:連立一次方程式第3回

式の数、未知数の数が4個になると前回のプログラムは使えません。 折角作ったプログラムですので、式の数が増えても使えるようにしましょう。
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 p=2,3に対して、(p,1)成分を0にするために第p行から第一行の(p,1)成分倍を引くプログラムを書いてください。

Rem (2,2)成分を1にするために第二行を(2,2)成分で割るプログラムを書いてください。

Rem p=1,3に対して、(p,2)成分を0にするために第p行から第二行の(p,2)成分倍を引くプログラムを書いてください。

Rem (3,3)成分を1にするために第三行を(3,3)成分で割るプログラムを書いてください。

Rem p=1,2に対して、(p,3)成分を0にするために第p行から第三行の(p,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回書くのではなく

For q=1 to 3
 共通の部分
Next q

のように書けないでしょうか。そうすれば繰り返しの回数を増やすことで式の数が増えても解けるようになります。

0 件のコメント: