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

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

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

2017-10-21 352
Встроенные функции и операторы для работы с массивами 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 Код функции поиска по ключу и функции условия

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


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

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



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

0.008 с.