Работа с числовыми данными
В теле функции используются четыре вспомогательные переменные: уу Единицы, Десятки, Сотни — для хранения вычисленных значений. Они не объявлены в этой функции, поэтому имеют тип Variant. Объявить переменные можно, например, так: Отбрасывает дробную часть числа х и возвращает целое значение. Для отрицательного значения Int возвращает ближайшее отрицательное целое число, меньшее либо равное… Читать ещё >
Работа с числовыми данными (реферат, курсовая, диплом, контрольная)
Для работы с числовыми данными чаще всего используются переменные типа Integer и Long (для целых чисел) или Single и Double (для вещественных чисел).
В VBA имеются следующие арифметические операции: возведение в степень (Л), изменение знака (-), умножение и деление (*, /), целочисленное деление (), получение остатка от деления (Mod), сложение и вычитание (+, -). Операции перечислены в порядке убывания их приоритета. Это стандартные арифметические операции, и они не требуют комментариев за исключением, может быть, операций и Mod. Смысл этих операций хорошо понятен на примере: выражения 114 и 11 Mod 4 имеют значения соответственно 2 и 3, так как 11 = 2−4 + 3. Обратите внимание также на приоритет операций и Mod: он ниже, чем приоритет операции деления. Как обычно, для управления порядком выполнения операций можно использовать скобки.
При создании арифметических выражений можно использовать встроенные функции языка и функции рабочего листа.
В табл. 10.1 приведены основные математические функции VBA.
Таблица 10.1
Встроенные математические функции VBA.
Функция. | Описание. |
Abs (x). | Возвращает абсолютное значение (модуль) числа х |
Atn (x). | Возвращает арктангенс числа х |
Функция. | Описание. |
Cos (x) | Возвращает косинус угла х, заданного в радианах. |
Ехр (.г). | Возвращает результат возведения числа е в степень х |
Fix (x). | Отбрасывает дробную часть числа х и возвращает целое значение. Для отрицательного значения Fix возвращает ближайшее отрицательное целое число, большее либо равное указанному. |
Int (jr). | Отбрасывает дробную часть числа х и возвращает целое значение. Для отрицательного значения Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному. |
Log (.r). | Возвращает натуральный логарифм числа х |
Rnd (x). | Возвращает случайное число меньшее 1 и большее или равное нулю. Необязательный аргумент х определяет способ генерации случайного числа. Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента для инициализации генератора случайных чисел значением, возвращаемым системным таймером. |
Sgn (.v). | Возвращает 1, если х > 0; — 1, если х < 0; 0, если х = 0. |
Sin (x). | Возвращает синус угла х, заданного в радианах. |
Sqr (:r). | Возвращает квадратный корень числа х при х > 0. |
Tan (jr). | Возвращает тангенс угла х, заданного в радианах. |
Обратите внимание, что функции Fix и Int не округляют значение, а отбрасывают дробную часть числа. Если вам потребуется округлить вычисленное значение до целого, то присвойте его переменной целого типа. В момент присваивания выполняется преобразование значения к нужному типу, и попутно выполняется округление. Можно также воспользоваться функцией Excel ОКРУГЛ. Для округления значения переменной X до двух знаков после запятой с помощью этой функции нужно использовать выражение Application. W ()rksheetFunction.Round (X, 2). Подробнее об использовании функций Excel в программах на VBA будет рассказано ниже.
Пример 10.4.
Создадим функцию, которая вычисляет значение выражения у/а2 + Ь2.
Решение
Public Function Prim4(a As Double, b As Double) As Double Prim4 = Sqr (а л 2 + b л 2).
End Function.
Для вычисления квадратного корня используется стандартная функция Sqr, для возведения в квадрат — операция л (при вводе перед символом Л обязательно должен быть набран пробел, иначе будет выдаваться сообщение о синтаксической ошибке).
В данном случае мы явно указали типы аргументов функции и тип возвращаемого значения. Если при вызове в качестве фактического значения параметра указать значение другого типа (например, целое), то оно автоматически будет преобразовано к типу Double.
Создадим функцию, которая находит сумму трех последних цифр числа.
Решение
Public Function Prim5(х As Long) As Integer.
у = x Mod 1000 'находим три последние цифры числа Единицы = у Mod 10.
Сотни = у 100.
Десятки = у 10 Mod 10.
Prim5 = Единицы + Десятки + Сотни.
End Function.
В теле функции используются четыре вспомогательные переменные: уу Единицы, Десятки, Сотни — для хранения вычисленных значений. Они не объявлены в этой функции, поэтому имеют тип Variant. Объявить переменные можно, например, так:
Dim у As Integer, Единицы As Byte, Десятки As Byte, Сотни As Byte.
Если фактический параметр функции не является целым числом, то он автоматически преобразуется к целому типу (вещественные числа в этом случае округляются по стандартным правилам округления), поэтому значение Prim5(123,5) равно 7.