Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2017-10-21 | 352 |
5.00
из
|
Заказать работу |
В 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!