Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
|
из
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 Код функции поиска по ключу и функции условия
Задание: создайте этот проект, добавьте в модуль библиотека функции ПоискПоКлючу, функУсловия. В модуле библиотека должны быть также рассмотренные ранее процедуры СлучайныйВектор и ВыводВектораЛист, выполните его в пошаговом режиме.
|
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!