Основы и принципы работы в VBA. Часть 3: Методические указания к выполнению лабораторных работ, страница 7

Dim A(4, 4) As Integer       ‘задаем массив для заполнения

Dim Z(4, 4) As Integer        ‘задаем массив для вывода результата

Dim  i As Integer, j As Integer, B As Single

B = Val(InputBox("Введите множитель"))

Range(Cells(1, 1), Cells(N, N)).Select              ‘ выделение диапазона ячеек

Selection.Clear          ‘удаление содержимого выделенных ячеек

Cells(1, 1).Select       ‘отмена выделения диапазона ячеек

Randomize

For i = 1 To 4               ‘цикл по строкам массива

    For j = 1 To 4           ‘цикл по столбцам массива

        A(i, j) = Int(100 * Rnd + 1)

    Next j

Next i

For i = 1 To 4               ‘транспонирование и умножение массива

    For j = 1 To 4

        Z(i, j) = A(j, i)*B

    Next j

Next I

Cells(1, 1) = "Исходная матрица"        

Cells(1, 2 + 4) = "Преобразованная матрица"         

For i = 1 To 4

    For j = 1 To 4

        Cells(i + 1, j) = A(i, j)                     ‘вывод исходного массива

        Cells(i + 1, 1 + 4 + j) = Z(i, j)         ‘вывод преобразованного массива

    Next j

Next i

End Sub

Рис. 11.4. Вид рабочего листа Excel

 
 


П р и м е р  2. Вычислить произведение и сумму элементов матрицы А.

Матрицу ввести с рабочего листа Excel, результат работы программы – в окно MsgBox с пояснениями. ГСА вычисления произведения и суммы элементов матрицы изображена на рис. 11.5.

 


Рис. 11.3. ГСА транспонирования и умножения массива


Рис.11.5. ГСА вычисления произведения и суммы элементов матрицы

Программный код:

Option Explicit

Sub  PR2  ( )

Dim A(1 to 10, 1 to 10) As Integer         ‘задаем массив для заполнения

Dim N As Integer, M As Integer, i As Integer, j As Integer

Dim S As Single, P As Single

N = Val(InputBox("Введите количество строк матрицы"))

М = Val(InputBox("Введите количество столбцов матрицы"))

For i = 1 To N              ‘цикл по строкам массива

    For j = 1 To N          ‘цикл по столбцам массива

        A(i, j) = Сells(i, j)

    Next j

Next I

S = 0 : P = 1                  ‘начальные значения суммы и произведения

For i = 1 To N          

    For j = 1 To N

        S = S + A(i, j): P = P* A(i, j)

    Next j

Next I

MsgBox ("Сумма элементов =" & S)

MsgBox ("Произведение элементов " & P)

End Sub

11.2. Индивидуальные задания

З а д а н и е  1. Составить алгоритм и программу, которая выполняет ввод массивов АиВ с помощью генератора случайных чисел RND в интервале
[8; 12]. Порядок массивов равен четырем. Варианты преобразований массивов приведены в табл. 9.2. Результаты обработки двумерного массива представить в виде массива Z и вывести на рабочий лист с пояснениями (см. пример 1).

Таблица 11.1

Варианты  задания  обработки двумерного массива

Вариант

Массив

Вариант

Массив

1

2

3

4

1

Zij = (Aij·Bij/2) ·Bij3

2

Zij = (Bij·Aij/2) ·Aij3



Окончание табл. 11.1

1

2

3

4

3

Zji = (Bji/Aji + 4)2

17

Zij = (Aij/Bij + 14)3

4

Zij = 5·Aji/Bij

18

Zij = (Aij – BijT)/3

5

Zji = 9·Bji/Aji + Bji2

19

Zij = (Aij + BijT) ·4·Bij

6

Zij = 3·BijT/AijT

20

Zij = 3/Bij + Aij3

7

Zij = 3/Bij + Aij3

21

Zij = π·BijTAij

8

Zij = 9·BijT/eAij

22

Zij = (π + АijT) ·4·Bij

9

Zij = (Aij/Bij + 14)3

23

Zij = 5· π · (Aij2 + Bij)

10

Zij = (BijT·Aij0,5)/Aij4

24

Zij = (2·AijT + BijT)/4

11

Zij = (BijT·Aij0,5)/Aij3

25

Zij = 3·BijT/Aij

12

Zij = 7· (Aij2 + Bij3)

26

Zij = (Aij·5) ·BijТ

13

Zij = (Aij – BijT)/3

27

Zij = (Bij/Aij·4)3

14

Zji = 5· (Aji2 + Bji)

28

Zij = 14·Aijπ ·Bij

15

Zij = (AijT + BijT)/4

29

Zij = 10,7/Aij + BijТ

16

Zij = 7· (Aij2 + Bij3)

30

Zij=(Bij·Aij·АijТ/2) ·Aij3

Результат работы программы ввести в табл. 11.2.

Таблица 11.2

Таблица исходных массивов А и В и результат  Z

Массив А

Массив В

Результат, массив Z

75

14

63

64

9

90

100

60

86

33

71

65

76

33

70

80

26

11

70

93

55

6

42

14

93

81

67

6

22

15

2

87

 Задание 2. Составить алгоритм и программу, которая выполняет
ввод массивов с помощью генератора случайных чисел RND в интервале
[–40; 30] или с листа Excel.  Исходный и преобразованный массив  вывести на рабочий лист с пояснениями.

1) Дан массив  W(6, 4).  Преобразовать  массив  W: все элементы,  расположенные на пересечении четных строк и столбцов, заменить единицами,  затем найти произведение элементов полученного массива.