Лабораторная работа № 8. Работа с массивами
Теоретические сведения
Массив – это упорядоченный набор данных одного типа, снабженных индексами.
Индексы предназначены для нахождения определенного элемента массива, т.е. положение каждого элемента в массиве определяется его индексом. В этом и заключается упорядоченность. Тип компонент называется базовым типом массива.
В VBA массив рассматривается как переменная структурированного типа. Массиву присваивается имя, посредством которого можно ссылаться на него, как на единое целое, так и на любую из его компонент. Переменная с индексом — идентификатор компоненты массива. Формат записи:
<имя массива> (<индекс>), где индекс может быть выражением порядкового типа.
Видим, что индексы принято указывать в круглых скобках после имени массива. По умолчанию нумерация элементов массива начинается с 0. Говорят, что 0 – базовый индекс.
Например, если А – массив из пяти чисел: 2, 3, 7, 9, 6, то А (0) = 2 – первый элемент массива, А (4) = 6 – последний.
Описание массива определяет имя, размер массива, базовый тип и производится в разделе переменных. В VBA имеются следующие описания массивов:
1. <имя массива> (<номер последнего элемента>) [As <тип>]
2. <имя массива> (<начальный индекс> To <конечный индекс>) [As <тип>]
Отметим, что второй позволяет изменить базовый индекс. Другим изменения базового индекса является использование оператора Option Base, который имеет следующий синтаксис:
Option Base <базовый индекс>
<базовый индекс> – единица или ноль.
Этот оператор применяется перед процедурой, аналогично оператору Option Explicit.
Например, для изменения базового индекса с 0 на 1 используется оператор Option Base 1.
Массив A, который был рассмотрен, требует одного индекса для указания любого элемента. Такой массив называется одномерным (или линейным) В одномерных массивах хранятся значения линейных таблиц. Примеры описания одномерных массивов:
1. Dim A (12) As Byte
2. Dim A (1 To 12) As Byte
3. Dim Bin (5) As Integer
4. Dim Str_mass (4) As String
5. Dim K (7)
6. Dim L (0 To 3)
Заполнение массива в программе производится поэлементно. Чаще всего для этого используется цикл с параметром, где в качестве параметра применяется индексная переменная. Возможно заполнение массива путем простого присвоения значения элементам:
Dim B (1 To 3) As Integer
B (1) = 2
B (2) = 18
B (3) = 6
Удобным определения одномерных массивов является функция Array, преобразующая список элементов, разделенных запятыми, в вектор из этих значений, и присваивающая их переменной типа Variant.
Dim A As Variant
A = Array (10, 20, 35, 70)
Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не указывают его размерность. Например,
Dim R () As Single
В программе следует вычислить необходимый размер массива и связать его с некоторой переменной, например, n; затем изменить размер динамического массива с оператора ReDim:
ReDim [Preserve] Имя (<номер последнего элемента>) [As <тип>]
ReDim [Preserve] Имя (<начальный индекс> To <конечный индекс>) [As <тип>]
Preserve – ключевое слово, используемое для сохранения данных в существующем массиве при изменении значения последней размерности.
Поделитесь своими знаниями, ответьте на вопрос:
СОЗДАТЬ ПРОГРАММЫ В VBA 1. Дан столбец целых чисел все числа меньше 100 и вывести в конце столбца эту сумму. 2. Дан столбец, содержащий ячейки с текстом. Удалить в этом столбце тексты из одного символа.
60 Мбайт * 8 = 480 Мбит - размер файла в мегабитах
480 Мбит * 1024 = 491520 Кбит - размер файла в килобитах
491520 / 2 = 245760 Кбит - половина файла
245760 Кбит / 256 = 960 секунд - время передачи первой половины файла
245760 Кбит / (256 / 2) = 245760 Кбит / 128 = 1920 секунд - время передачи втораой половины файла
960 с + 1920 с = 2880 секунд - общее время передачи
В одной минуте 60 секунд:
2880 / 60 = 48 минут - передан весь файл
Задание №2
Переведем килобайты в биты: N = 3750кбайт = 30720000бит
Вычислим скорость передачи информации: V = 30720000/120
V = 256000 бит/c