Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Встроенные функции и операторы для работы с массивами

2017-10-21 402
Встроенные функции и операторы для работы с массивами 0.00 из 5.00 0 оценок
Заказать работу

Вверх
Содержание
Поиск

В VBA есть встроенные функции определения границ массивов:

· LBound(имяМассива) – возвращает нижнюю границу массива(начало нумерации)

· UBound(имяМассива) – возвращает верхнюю границу массива(индекс последнего элемента)

Применение этих функций позволяет передавать в процедуры только сам массив, а размер массива определять в самой процедуре. Например процедуру печати одномерного массива можно написать так:

Public Sub ПечатВект(вектор)

Dim i As Integer,n as Integer

n=UBound(вектор)

Debug.Print

For i = 1 To n

Debug.Print вектор(i),

Next

Debug.Print

End Sub

 

· Array(список значений) - присвоение массива, возвращаемого функцией Array, переменной типа Variant

Инструкция ReDim используется для задания верхних и нижних границ индексов для каждой размерности, изменения числа размерностей,. Инструкцию ReDim можно применять для изменения динамического массива столько раз, сколько потребуется. Однако при каждом применении данные, содержащиеся в массиве, теряются. Инструкция ReDim Preserve увеличивает размер массива, сохраняя при этом его содержимое. В следующем примере показывается, как можно увеличить массив на 10 элементов без уничтожения текущих значений элементов массива.

Public Sub ИзменениеРазмераМассва()

Dim вектор As Variant

вектор = Array(5, -18, 8.9, 7, 4, -5, 25)

ReDim Preserve вектор(UBound(вектор) + 10)

End Sub

Использование ключевого слова Preserve вместе с динамическим массивом позволяет изменить только верхнюю границу последней размерности массива, однако изменение числа размерностей невозможно. Добавленные элементы содержат значение ноль(0), для числовых типов массива, пустая строка (“”) для текстовых и значение Empty (пусто), для типа Variant.

Алгоритмы работы с массивами

Алгоритмы заполнение массивов

Некоторые примеры заполнения массивов были рассмотрены выше. Приведём несколько типичных процедур заполнения массива.

Полезная процедура формирования вектора случайных чисел. Удобно применять, когда нужен произвольный вектор числового типа.

Public Sub СлучайныйВектор(вектор)

Dim i As Integer

For i = 1 To UBound(вектор)

вектор(i) = Int(Rnd * 100 - 30)

Next

End Sub

· Rnd –функция, возвращающая случайное число из диапазона [0,1]

· Int - функция, возвращающая целую часть числа

В итоге, процедура формирует вектор случайных целых чисел в диапазоне от -30 до +70

Алгоритмы поиска в массивах

Поиск по ключу – это поиск элементов массива или(и) их индексов отвечающих некоторому условию. Функция поиска ПоискПоКлючу логического типа, имеет три параметра: массив, в котором осуществляется поиск, имя объявленного, но не созданного массива для заполнения найденными элементами, имя массива для найденных индексов. Так как поиск может оказаться безуспешным (нет элементов отвечающих условию), вводится переменная логического типа Флаг, которая меняет значениес False на True если найдётся элемент отвечающий условию. При возвращении в вызывающую процедуру, проверяется значение функции.

Рисунок 3 Запускающая процедура

Рисунок 4 Код функции поиска по ключу и функции условия

Задание: создайте этот проект, добавьте в модуль библиотека функции ПоискПоКлючу, функУсловия. В модуле библиотека должны быть также рассмотренные ранее процедуры СлучайныйВектор и ВыводВектораЛист, выполните его в пошаговом режиме.


Поделиться с друзьями:

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...



© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.