Приоритет операций
В первую очередь вычисляется выражение в круглых скобках.
Если скобки отсутствуют, то по умолчанию выполняются следующие категории операций:
sin(), cos(), abs()…;
^;
отрицание (присвоение числу отрицательного значения);
*, /;
\ (целочисленное деление);
mod;
+, -;
& (конкатенация или сцепление строк);
операции сравнения;
логические операции.
Массивы
Массивы (класс Array) – это упорядоченные наборы переменных одного типа, доступ к которым осуществляется с помощью порядковых номеров, называемых индексами.
Каждая переменная в наборе называется элементом массива, а количество элементов в массиве называется размером массива. Размер массива ограничивается объёмом оперативной памяти и типом данных элементов массива.
Индекс элемента указывается в круглых скобках после имени массива, например, strИмена(1), strИмена (3), strИмена (10) являются элементами массива strИмена. Каждый из элементов можно использовать так же, как и простую переменную.
Различаются фиксированного размера (статические) и динамические массивы.
Границы фиксированного массива устанавливаются при его объявлении, и при выполнении программы изменяться не могут.
Объявление фиксированного массива зависит от области его видимости и осуществляется:
глобального массива – с помощью оператора Public в разделе объявлений (Declaration) модуля;
массива модульного уровня – с помощью оператора Private в разделе объявлений (Declaration) модуля;
локального массива – с помощью оператора Dim внутри процедуры.
При объявлении фиксированного массива после его имени в круглых скобках указывается верхняя граница массива. Нижней границей массива всегда является нуль.
Например, нужно хранить фамилии 150 участников конференции.
Для объявляется одномерный фиксированный массив:
Dim strФамилия(149) As String
Для создания того же, но глобального массива нужно использовать оператор Public:
Public strФамилия(149) As String
Какой-либо, в частности восьмой элемент одномерного массива strФамилия(149) может быть обозначен:
strФамилия(7) = "Иванов"
Массивы могут быть многомерными, с размерностью - до 60 измерений (координат). Пример объявления четырехмерного массива типа Integer:
Dim intКомплектующие(34, 13, 4, 29) As Integer
При этом массив содержит: 35х14х5х30 = 73500 элементов.
При объявлении динамического массива его размер в круглых скобках не указывается, но может изменяться в процессе выполнения программы в соответствии с конкретными условиями. Каждое измерение массива обозначается запятой.
Применение динамических массивов обеспечивает эффективное управление памятью, выделяя память под массив лишь на время, когда массив используется, а затем освобождая её. Например:
Dim datДниРожд( ) As Date
Для того чтобы в какой-то момент активизировать динамический массив, чтобы он получил возможность хранения данных, следует указать его размер с помощью оператора ReDim:
ReDim datДниРожд(intЧислоДнейРожд – 1)
т. е. предполагается, что значение переменной (intЧислоДнейРожд) уже задано ранее, а уменьшение числа элементов на 1 приводит число элементов массива в соответствие с их нумерацией от нуля. При выполнении оператора ReDim данные, размещенные в массиве ранее, стираются.
Инициализация любого массива осуществляется поэлементно так же, как и переменной с помощью оператора присваивания.
Но это можно сделать и при объявлении, поместив значения массива в фигурные скобки:
Dim strNames( ) As String ={"Андрей", "Владимир", "Иван"}
Dim intСчёт( , ) As Integer = {{1, 2}, {3, 4}}
Копирование содержимого одного массива в другой, это делается с помощью оператора инициализации:
strМассивДругой() = strИсходныйМассив(…)
Массив, которому присваивается значение (МассивДругой), должен быть динамическим. Размеры его устанавливаются автоматически после присваивания.
Типы данных исходного массива и другого обязаны быть совместимыми.
C массивами производятся статистические операции, т. е. могут вычисляться итоговые функции, например:
Count – определение количества чисел в массиве;
Sum – суммирование элементов массива и т. п.
Массивы создаются на основе класса Array, который осуществляет следующие методы:
BinarySearch – обеспечивает поиск в отсортированном массиве. Когда элемент найден, то возвращается его индекс;
Reserve – изменяет порядок следования элементов одномерного массива на обратный;
Sort – сортирует элементы одномерного массива по порядку и т. п.
