Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vba_лаб_раб5_Операции с двумерн массивами_2015-10-04.doc
Скачиваний:
9
Добавлен:
14.03.2016
Размер:
1.66 Mб
Скачать

15

Лабораторная работа №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

Frame1

  1. Пишем программу:

Пример 3

Создать процедуру для выполнения следующих действий:

  1. Записать в массив Р(2,5) данные, хранящиеся в ячейках А1:Е2 листа Excel с именем Первый.

  2. Найти сумму элементов каждой строки массива и записать в массив c именем S.

  3. Вывести окно с сообщением «Сумма» 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).