Двумерным называется массив, у которого размерность равна 2. Фактически он представляет собой таблицу состоящую из строк и столбцов. Двумерные массивы, у которых значения индексов одинаковые, т.е. число строк равно числу столбцов, называют квадратной матрицей. При работе с квадратными матрицами используются специальные математические понятия, значение которых рассмотрим на примере матрицы размерами 4х4 – B(4,4):
j = i – элемент находится на главной диагонали ( );
j = n - i + 1 (n – размерность матрицы) – элемент находится на побочной диагонали ( );
i < j – элемент находится над главной диагональю ( , , , , , );
i > j – элемент находится под главной диагональю ( , , , , , ).
Транспонированной матрицей В(n, n) называется такая квадратная матрица, у которой столбцы соответствуют строкам исходной квадратной матрицы А(n, n):
Элементы главной диагонали у матриц А и В одни и те же. Следовательно операция транспонирования матрицы А сводится к перестановке строк матрицы.
Dim a() As Single
Dim b() As Single
n = 5
ReDim a(n, n): ReDim b(n, n)
For i = 1 To n
For j = 1 To n
a(i, j) = Cells(i, j)
b(j, i) = a(i, j) 'транспонирование матрицы
Next j
Next i
For i = 1 To n
For j = 1 To n
Cells(n + 1 + i, j) = b(i, j) 'вывод результата
Next j
Next i
Результат программы:
Примеры решения задач
Пример 1. Ввести массив А из 10 элементов. Найти сумму и произведение элементов массива.
В этом примере используется характерный прием программирования – метод накопления: к переменной S последовательно прибавляются отдельные элементы массива; в результате при выходе из цикла переменная S будет содержать сумму всех перебранных элементов. Аналогично можно найти произведение всех элементов (в этом случае начальное значение P должно равняться не нулю, а единице (P = 1).
Sub primer_1()
Dim a(10) As Single
Dim s As Single
Dim p As Double
Dim i As Integer
For i = 1 To 10
a(i) = Cells(1, i)
Next i
s = 0: p = 1
For i = 1 To 10
s = s + a(i) 'вычисление суммы
p = p * a(i) 'вычисление произведения
Next i
Cells(3, 1) = "Сумма элементов массива = " & s
'вывод суммы в 3 строку 1 столбец активного листа Excel
Cells(4, 1) = "Произведение элементов массива = " & p