Лабораторная работа №5 Тема: Операции с двумерными массивами.
Цель: Научить использовать различные методы обработки двумерных массивов .
При работе с массивами их следует описывать в начале программы с указанием размерности. Синтаксис описания массивов:
Dim ИмяМассива(Размерность) As ТипЭлементов
Например,
Option Base 0
Dim B(3,4) As Single –
Матрица В из четырех строк и пяти столбцов действительных чисел, т.к. по умолчанию нумерация с нуля.
Изменить базовый индекс - написать в области описания модуля инструкцию
Option Base 1.
Dim B(3,4) As Single –
Матрица В из трех строк и четырех столбцов действительных чисел, т.к. нумерация с единицы.
Допускается такая запись:
Dim B(1 To 3, 1 To 4) As Single
Dim B(3,4) As Single – Матрица В из трех строк и четырех столбцов действительных чисел, т.к. явно указана нижняя граница массива.
Обращаться к элементам массива можно только поэлементно, т.е. необходимо указывать индекс элемента. Например,
Z = B(1,3) -
переменной Z присвоено значение элемента матрицы В, стоящего на пересечении первой строки и третьего столбца
Для работы с массивами часто используются циклы с заданным числом повторений (For …Next)
Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не указывают его размерность. Например,
Dim R () As Single
В программе следует вычислить необходимый размер массива и связать его с некоторой переменной, например, n; затем изменить размер динамического массива с помощью оператора ReDim:
ReDim [Preserve] Имя (<номер последнего элемента>) [As <тип>]
ReDim [Preserve] Имя (<начальный индекс> To <конечный индекс>) [As <тип>]
Preserve – ключевое слово, используемое для сохранения данных в существующем массиве при изменении значения последней размерности.
Пример 1
Найти сумму элементов матрицы А(3,2).
Пример 2
Записать в массив L данные из диапазона A1:D3 листа Excel. Найти сумму всех элементов массива, значения которых больше 15. Результат поместить в ячейку Н3 того же листа.
Решение
1. Для определения размерности массива L рассмотрим фрагмент ЭТ (табл. 16):
Таблица 16
-
Пишем программу:
Пример 3
Создать процедуру для выполнения следующих действий:
-
Записать в массив Р(2,5) данные, хранящиеся в ячейках А1:Е2 листа Excel с именем Первый.
-
Найти сумму элементов каждой строки массива и записать в массив c именем S.
-
Вывести окно с сообщением «Сумма» I-й «строки равна» S(I).
Решение.
Для этого:
1. Открыть новый файл;
2. Переименовать Лист1 в Первый (щелчок правой клавишей по Лист1 – Переименовать – ввести имя Первый).
3. Заполнить ячейки A1:Е2 значениями
11 5 -1 4 8
4 0 -9 -8 2
4.
Public Sub ДвумерныйМассив ()
Dim P(2, 5), S(2) As Integer
Dim I, J As Integer
Dim Задание As Object
Set Задание = Worksheets("Первый ")
‘Переписываем массив из таблицы
For I = 1 To 2
For J = 1 To 5
P(I, J) = Задание.Cells(I, J)
Next
Next
‘Считаем суммы элементов по строкам
For I = 1 To 2
S(I) = 0
For J = 1 To 5
S(I) = S(I) + P(I, J)
Next
MsgBox (“Сумма” & I & “-й строки равна” & S(I)) Next
End Sub
5. Сохранить файл с именем «Задание3».
6. Запустить программу на выполнение и проверить результат счета (сумма первой строки равна 27, а второй -11).