Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб. раб. VBA / двумерные массивы

.doc
Скачиваний:
67
Добавлен:
16.03.2015
Размер:
29.18 Кб
Скачать

Двумерные массивы. Вложенные циклы.

Пример 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)