
Лаб. раб. VBA / двумерные массивы
.docДвумерные массивы. Вложенные циклы.
Пример 1.
Постановка задачи. Даны натуральное число n, действительная матрица размера n x 3. Получить сумму положительных и число отрицательных членов во всей матрице.
Технология выполнения задания:
1.Набрать в стандартном модуле проекта следующую пользовательскую процедуру:
Sub primer()
Const n = 3
Const m = 3
Dim S As Single
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim A(1 To n, 1 To m) As Single
A(1, 1) = -11: A(1, 2) = 0: A(1, 3) = 2
A(2, 1) = 5: A(2, 2) = 45: A(2, 3) = 32
A(3, 1) = -3: A(3, 2) = 14: A(3, 3) = -25
S = 0
k = 0
For i = 1 To n
For j = 1 To m
If A(i, j) >= 0 Then S = S + A(i, j) Else k = k + 1
Next j
Next i
Cells(1, 1).Value = "S= "
Cells(1, 2).Value = S
Cells(2, 1).Value = "k= "
Cells(2, 2).Value = k
End Sub
2. Вычислить (F5)
Пример 2.
Постановка задачи. Дана действительная матрица m x n. Определить числа b1, …, bm, равные наименьшим значениям элементов строк.
Технология выполнения задания:
1.Набрать в стандартном модуле проекта следующую пользовательскую процедуру:
Option Base 1
Sub primer()
Dim i As Integer
Dim j As Integer
Dim M(1 To 3, 1 To 3) As Variant
Randomize
For i = 1 To 3
For j = 1 To 3
M(i, j) = Rnd(20)
Cells(i, j).Value = M(i, j)
Next j
Next i
For i = 1 To 3
Min = M(i, 1)
For j = 2 To 3
If M(i, j) < Min Then Min = M(i, j)
Next j
Cells(i, 1).Value = Min
Next i
End Sub
2. Вычислить (F5)
Пример 3.
Постановка задачи. Даны натуральное число n, действительная матрица размера n x 3. Найти среднее арифметическое, каждого из столбцов.
Технология выполнения задания:
1.Набрать в стандартном модуле проекта следующую пользовательскую процедуру:
Option Base 1
Sub primer()
Const m = 3: Const n = 4
Dim i As Integer
Dim j As Integer
Dim s As Single
Dim A(1 To m, 1 To n) As Integer
For i = 1 To m
For j = 1 To n
A(i, j) = i * j
Cells(i, j).Value = A(i, j)
Next j
Next i
For j = 1 To n
s = 0
For i = 1 To m
s = s + A(i, j) / m
Next i
Cells(1, j).Value = s
Next j
End Sub
2. Вычислить (F5)