Баннер
Баннер

Обработка массивов

Оглавление
Обработка массивов
Данные в массивах
Пример 1
Пример 2
Все страницы

 

Обработка массивов на языке Visual Basic for Application

В повседневной жизни часто приходится встречаться с информацией, представленной в табличном виде. Для обработки можно использовать электронные таблицы, а также VBA.

Массив – это структурированный тип данных, конечная упорядоченная совокупность данных одного типа, доступ к которым осуществляется по индексу (порядковому номеру). Массивы необходимы, когда требуется несколько раз обращаться к одной и той же группе однотипных данных.

 


Массивы могут содержать данные любого типа: тип элементов массива распознается по идентификатору. Массивы необходимо объявлять. С помощью оператора Dim. При объявлении указывается имя массива, размерность и количество элементов по каждой размерности (эти количества должны быть определены до объявления массива).

Использование массивов значительно упрощает работу с группами однотипных данных.

Все действия с массивами выполняются поэлементно, в цикле. Поскольку массив — это последовательность с известным числом элементов, удобнее использовать цикл For.

 


Пример. Вычислить средний рост по данным, записанным в электронной таблице.

Результат вычисления среднего роста будут записаны в ячейку B9.

Решение.

Sub средний_рост()

Dim Rost(6) As Double

Dim i As Integer

Dim Сумма, Среднее As Double

' ввод таблицы для обработки

For i = 1 To 6

Rost(i) = Cells(1 + i, 2).Value

Next i

' нахождение суммы чисел в таблице

Сумма = 0

For i = 1 To 6

Сумма = Сумма + Rost(i)

Next i

' вычисление среднего

Среднее = Сумма / 6

'вывод

Cells(9, 2).Value = Среднее

MsgBox (Среднее)

End Sub

Пояснение решения.

В строке Dim Rost(6) As Double объявляется массив чисел двойной точности именем Rost размерностью 6, то есть одномерная таблица Rost емкостью 6 (шесть) ячеек.

Аналогичным образом можно обрабатывать и двумерные массивы.


Пример. Определить, является ли данный квадратный массив симметричным относительно своей главной диагонали. Данные записаны в электронной таблице.

Решение.

Sub simetria()

Const n = 4

Dim i, j

Dim x(n, n)

Dim t, check As Boolean

For i = 1 To n

For j = 1 To n

x(i, j) = Cells(i, j)

Next

Next

t = True 'предположим, что матрица симметрична

i = 2

While t And (i < n)

j = 1

While (j < i) And (x(i, j) = x(j, i))

j = j + 1

Wend

t = (j = i)

i = i + 1

Wend

check = t

MsgBox check

End Sub



Читайте также:

Добавить комментарий


Защитный код
Обновить




Разделы



Главная VBA Обработка массивов