Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСПЕКТ ЛЕКЦИЙ(рус).doc
Скачиваний:
80
Добавлен:
09.02.2016
Размер:
2.29 Mб
Скачать

Глава 16. Массивы данных в vbа

16.1. Характеристики и описание одномерных массивов

Массив - это упорядоченная совокупность данных одного типа (см. глава 10 -, параграф 10.5) и имеет следующие характеристики:

  1. Имя массива - подчиняется правилу образования имен в VBA.

  2. Размерность - одномерный, двумерный, трехмерный и т.д. ( <= 60) .

  3. Длина - количество элементов в массиве

  4. Тип - элементы массива должны быть одного типа (вещ., целые и т.д.).

Одномерныймассив состоит из ряда элементов.

Математическая запись массива: Х= ( хi ), i=1,2,...,n ,

где Х - имя массива;

xi - имя элемента массива в общем виде (индексная переменная);

i -индекс, указывающий на порядковый номер элемента в массиве.

В VBА имя элемента в общем виде запишется так - х( i ).

Массивы с фиксированными размерами называют статическими, а с переменными размерами - динамическими. Характеристики массива заключены в его обязательном описании.

Синтаксис описания статического одномерного массива:

dim Имя (размерность массива) [ AS тип массива ]

Приведем описание массива с именем х.

dim x(1 to 10) As single

где:

  • Имя массива - х;

  • Размерность - одномерный;

  • Длина массива - 10 элементов;

  • Тип массива - вещественный.

При этом будет выделено 10 пустых ячеек с именами х(1), х(2),... х(10)

Данный массив также может быть описан следующим образом:

Option base 1 ' Оператор записать в разделе General редактора кода

dim x(10) as single

Общая блок - схема обработки элементов одномерного массива

Содержание блока подготовки и тела цикла при решении некоторых задач обработки одномерного массива:

Задача Блок подготовки Тело цикла

Сумма элементов s=0 s=s+x(i)

Произведение элем. р =1 р=р*x(i)

мин. элемент min=x(1) if min>x(i) then min=x(i)

мах. элемент max=x(1) if max<x(i) then max=x(i)

16.2. Примеры обработки одномерных массивов

Пример 16.1.

Задан одномерный массив Х=хi i=1,2,...,10. Составить программу определения максимального элемента.(см. глава 10, рис. 10.10).

Private Sub CommandButton1_Click()

Dim x(1 To 10), max As Single, i As Integer

For i = 1 To 10

x(i) = Val(InputBox(" Введите " & i & " Элемент массива "))

Next i

max = x(1)

For i = 2 To 10

If max < x(i) Then max = x(i)

Next i

MsgBox "max=" & max

End Sub

Сортировка числовых одномерных массивов

Для сортировки обычно применяют модифицированный метод "пузырька". В нем попарно сравниваются элементы массива и по условию сортировки меняются или не меняются местами. Массив считается упорядоченным, если в процессе попарного сравнения не было ни одной перестановки элементов.

Пример 16.2.

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

Задан массив Х=хi , i=1,2,...,6.

Введем переменную р - признак перестановок элементов в массиве.

Алгоритм сортировки одномерного массива по возрастанию

Программа сортировки одномерного массива по возрастанию

Dim x(1 To 6), a As Single

Dim i, p As Integer

For i = 1 To 6

x(i) = Val(InputBox(" Введите " & i & " элемент массива "))

Next i

1: p = 0

For i = 1 To 5

If x(i) > x(i + 1) Then a = x(i): x(i) = x(i + 1): x(i + 1) = a : p = 1

Next i

If p = 1 Then GoTo 1 ‘ Если были перестановки (р=1), то переход к метке 1

Debug.Print "Упорядоченный по возрастанию массив "

For i = 1 To 6

Debug.Print x(i)

Next i