- 前回の解答
このブログでの説明どおりにプログラムを書くと次のようになります。
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
Amazonブラックフライデー、11月29日〜12月6日に開催
-
Amazonは、年末最後のビッグセール「Amazonブラックフライデー」を2024年11月29日(金)0時〜12月6日(金)23時59分まで開催する。セール開催に先駆け、先行セールを27日と28日に実施する。
プライム会...
0 件のコメント:
コメントを投稿