- Код: Выделить всё
'Дана матрица D(M,N).
'Преобразовать исходную матрицу в одномерный массив W
'по следующим правилам:
'а) компоненты матрицы D располагаются в массиве W по строкам;
'б) компоненты матрицы D располагаются в массиве W по столбцам.
Sub f1_1()
Dim m, n, W1(), W2(), D() As Integer
Dim txt3, txt, txt2 As String
Dim i, j, p As Byte
m = Val(InputBox("Количество столбцов"))
n = Val(InputBox("Количество строк"))
If m <= 0 Or n <= 0 Then
MsgBox "Неккоректный ввод данных!"
GoTo fin
End If
ReDim D(m, n), W1(m * n), W2(m * n)
For i = 1 To m
For j = 1 To n
'ввод элементов матрицы с порядковым номером
D(i, j) = Val(InputBox("Введите элемент матрицы с порядковым номером D (" & i & "," & j & ")", "Ввод"))
Next j
Next i
'по строкам
For i = 1 To m
For j = 1 To n
W1(p) = D(i, j)
p = p + 1
Next j
Next i
p = 0
'по столбцам
For j = 1 To n
For i = 1 To m
W2(p) = D(i, j)
p = p + 1
Next i
Next j
For i = 1 To m
For j = 1 To n
txt3 = txt3 & CStr(D(i, j)) & " "
Next j
txt3 = txt3 & Chr(13)
Next i
For i = 0 To m * n
txt = txt & CStr(W1(i)) & " "
txt2 = txt2 & CStr(W2(i)) & " "
Next i
'вывод строчки
MsgBox "Матрица: " & Chr(13) & txt3 & "По строкам: " & txt & Chr(13) & "По столбцам: " & txt2
fin: End Sub