- 前回の解答
このブログでの説明どおりにプログラムを書くと次のようになります。
Sub 連立一次方程式1()
Dim x(3, 4) As Single
Dim i As Integer, j As Integer, k 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)成分で割るプログラムを書いてください。
k = x(1, 1)
For j = 1 To 4
x(1, j) = x(1, j) / k
Next j
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
Rem (2,1)成分を0にするために第2行から第1行×(2,1)成分を引きます。
k = x(2, 1)
For j = 1 To 4
x(2, j) = x(2, j) - x(1, j) * k
Next j
Rem (3,1)成分を0にするために第3行から第1行×(3,1)成分を引きます
k = x(3, 1)
For j = 1 To 4
x(3, j) = x(3, j) - x(1, j) * k
Next j
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
Rem (2,2)成分を1にするために第2行を(2,2)成分で割ります
k = x(2, 2)
For j = 1 To 4
x(2, j) = x(2, j) / k
Next j
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
Rem (1,2)成分を0にするために第1行から第2行×(1,2)成分を引きます
k = x(1, 2)
For j = 1 To 4
x(1, j) = x(1, j) - x(2, j) * k
Next j
Rem (3,2)成分を0にするために第3行から第2行×(3,2)成分を引きます
k = x(3, 2)
For j = 1 To 4
x(3, j) = x(3, j) - x(2, j) * k
Next j
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
Rem (3,3)成分を1にするために第3行を(3,3)成分で割ります
k = x(3, 3)
For j = 1 To 4
x(3, j) = x(3, j) / k
Next j
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
Rem(1,3)成分を0にするために第1行から第3行×(1,3)成分を引きます
k = x(1, 3)
For j = 1 To 4
x(1, j) = x(1, j) - x(3, j) * k
Next j
Rem (2,3)成分を0にするために第2行から第3行×(2,3)成分を引きます
k = x(2, 3)
For j = 1 To 4
x(2, j) = x(2, j) - x(3, j) * k
Next j
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 - 発展課題の解答
レポート課題が出来た人には、似たようなことを繰り返し書いている部分をFor文を使ってまとめるプログラムを考えてもらいました。
Sub 連立一次方程式2()
Dim x(3, 4) As Single, i As Integer, j As Integer, k 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
For i = 1 To 3
For k = i + 1 To 4
x(i, k) = x(i, k) / x(i, i)
Next k
x(i, i) = 1
For j = 1 To 3
If i <> j Then
For k = i + 1 To 4
x(j, k) = x(j, k) - x(i, k) * x(j, i)
Next k
x(j, i) = 0
End If
Next j
Next i
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 - 期末試験
Sheet1に書かれた行列の行の数と列の数を数えて、その転置行列、つまり行と列を入れ替えた行列をSheet2に出力するプログラムを書きなさい。
例えば、Sheet1に1 2 3 4 5 6 1 3 5 2 4 6
【東京都】個人宅の防犯カメラや録画機能つきドアホン購入を半額助成、2025年度は最大2万円
-
東京都は、個人宅に防犯カメラやカメラ付きインターホンなどの防犯機器を設置すると、購入にかかる費用の半額を最大20,000円まで補助する事業を2025年(令和7年度)に実施、2026年度(令和8年度)にも最大1万円を自治体...
0 件のコメント:
コメントを投稿