Замените элементы стоящие ниже главной диагонали нулями - VB
Формулировка задачи:
В массиве R(5x5) замените элементы стоящие ниже главной диагонали нулями. Заранее спс)
Решение задачи: «Замените элементы стоящие ниже главной диагонали нулями»
textual
Листинг программы
Dim sT As String
Dim iI As Integer
Dim iJ As Integer
Dim iMatrixN As Integer
Dim dMatrix() As Double
'
'iMatrixN = CInt(Val(InputBox("N=", "Квадратная матрица NxN")))
iMatrixN = 5 ' Эту строку убрать, а в предыдущей строке раскоментить
'
ReDim dMatrix(1 To iMatrixN, 1 To iMatrixN) As Double ' это чтоб не думалось
'
' Заполняем матрицу.
'For iI = LBound(dMatrix, 1) To UBound(dMatrix, 1) Step 1
' For iJ = LBound(dMatrix, 2) To UBound(dMatrix, 2) Step 1
' ' Персональное приглашение для каждой переменной
' sT = "X(" + Trim$(Str$(iI)) + "," + Trim$(Str$(iJ)) + ")="
' ' Вводим элементы матрицы
' dMatrix(iI, iJ) = CDbl(Val(InputBox(sT, "Элементы матрицы")))
' Next iJ
'Next iI
' Блок убрать, а предыдущий раскоментить
' ------------------------------
' Мне было влом каждый раз при отладки матрицу с клавиатуры вводить. :-)
dMatrix(1, 1) = 1.2
dMatrix(1, 2) = 5.7
dMatrix(1, 3) = 11.2
dMatrix(1, 4) = 21.3
dMatrix(1, 5) = 10.5
'
dMatrix(2, 1) = 7
dMatrix(2, 2) = 15.7
dMatrix(2, 3) = 11.8
dMatrix(2, 4) = 21.9
dMatrix(2, 5) = 1.2
'
dMatrix(3, 1) = 2
dMatrix(3, 2) = 8
dMatrix(3, 3) = 1.82
dMatrix(3, 4) = 21.02
dMatrix(3, 5) = 10.02
'
dMatrix(4, 1) = 5
dMatrix(4, 2) = 7.7
dMatrix(4, 3) = 12.4
dMatrix(4, 4) = 11.2
dMatrix(4, 5) = 10.1
'
dMatrix(5, 1) = 4
dMatrix(5, 2) = 9
dMatrix(5, 3) = 11.5
dMatrix(5, 4) = 21.2
dMatrix(5, 5) = 3.2
' ------------------------------
sT = "" ' А вот это - обязательно
For iI = LBound(dMatrix, 1) To UBound(dMatrix, 1) Step 1
For iJ = LBound(dMatrix, 2) To UBound(dMatrix, 2) Step 1
sT = sT + Trim$(Str$(dMatrix(iI, iJ))) + ";" + Chr$(9)
Next iJ
sT = sT + Chr$(13) + Chr$(10)
Next iI
sT = sT + Chr$(13) + Chr$(10)
sT = sT + Chr$(13) + Chr$(10)
sT = sT + Chr$(13) + Chr$(10)
txtMatrix.Text = sT
'
' Обрабатываем матрицу в цикле.
For iI = LBound(dMatrix, 1) To UBound(dMatrix, 1) Step 1
For iJ = LBound(dMatrix, 2) To UBound(dMatrix, 2) Step 1
If iJ < iI Then
dMatrix(iI, iJ) = 0
End If
Next iJ
Next iI
'
For iI = LBound(dMatrix, 1) To UBound(dMatrix, 1) Step 1
For iJ = LBound(dMatrix, 2) To UBound(dMatrix, 2) Step 1
sT = sT + Trim$(Str$(dMatrix(iI, iJ))) + ";" + Chr$(9)
Next iJ
sT = sT + Chr$(13) + Chr$(10)
Next iI
txtMatrix.Text = sT