'Определяем массив С для исходных данных и массива g 'для резулютирующей квадратной матрицы Dim c(), g(), k AsLong, i AsLong, j AsLong
Cells(7, 1).CurrentRegion.Offset(1).ClearContents
'Вводим в массив С значений из ячеек A2:D2
k = 1 DoWhile Cells(2, k) <> "" ReDim Preserve c(1To k) 'увеличивает размерность массива с пока элемент не пустой
c(k) = Cells(2, k)
k = k + 1 Loop
'Выделяем память для массива g ReDim g(1To k - 1, 1To k - 1)
'Проводим расчет элементов матрицы по заданной формуле 'организуя двойной цикл (по строкам и столбцам) For i = 1To k - 1 For j = 1To k - 1 If i <= j Then
g(i, j) = Sin(c(i)) ^ 2 Else
g(i, j) = c(i - j) + Cos(c(i)) EndIf 'Ввод элементов полученной матрицы g в ячейки A7:D10 листа Excel
Cells(i + 6, j) = g(i, j) Next j Next i EndSub
Макрос для кнопки Старт
PrivateSub CommandButton1_Click()
'Определяем массив С для исходных данных и массива g 'для резулютирующей квадратной матрицы Dim c(), g(), k AsLong, i AsLong, j AsLong
Cells(7, 1).CurrentRegion.Offset(1).ClearContents
'Вводим в массив С значений из ячеек A2:D2
k = 1 DoWhile Cells(2, k) <> "" ReDim Preserve c(1To k) 'увеличивает размерность массива с пока элемент не пустой
c(k) = Cells(2, k)
k = k + 1 Loop
'Выделяем память для массива g ReDim g(1To k - 1, 1To k - 1)
'Проводим расчет элементов матрицы по заданной формуле 'организуя двойной цикл (по строкам и столбцам) For i = 1To k - 1 For j = 1To k - 1 If i <= j Then
g(i, j) = Sin(c(i)) ^ 2 Else
g(i, j) = c(i - j) + Cos(c(i)) EndIf 'Ввод элементов полученной матрицы g в ячейки A7:D10 листа Excel
Cells(i + 6, j) = g(i, j) Next j Next i EndSub