В этой статье мы рассмотрим математические vbscript функции и vbscript функции для работы с подтипами данных. Первые полезны при математических вычислениях – нахождение синуса или косинуса, генерация случайного числа или определение квадратного корня, вторые – позволяют определить, к какому типу данных относится та или иная переменная. Для каждой математической функции я напишу отдельный пример сценария, в конце я напишу один пример для демонстрации работы последней группы vbscript функций.
Математические VBscript функции
Abs(x) – Позволяет получить абсолютное число, модуль. Параметр x является любым числовым выражением, если же в качестве параметра мы передадим пустую переменную, то функция вернёт 0.
'*********************************** ' модуль числа ' abs.vbs '*********************************** Dim a,b,c,d a = Abs(100) ' 100 b = Abs(-100) ' 100 c = Abs(d) ' 0 MsgBox a & vbCrLf & b & vbCrLf & c |
Tan(x) – Значение тангенса для числа x – отношение длины противоположного катета к прилежащему в прямоугольном треугольнике. Тут x – значение угла в радианах, что бы перевести градусы в радианы, надо число градусов умножить на pi/180.
'*********************************** ' Тангенс угла ' tan.vbs '*********************************** Dim a,b,c,pi ' вычисляем pi pi=4*atn(1) a = Tan(150*(pi/180)) b = Tan(180) MsgBox a & vbCrLf & b |
Atn(x) — Возвращает арктангенс числа х, возвращает значение угла в прямоугольном треугольнике. Параметр x – это отношение противоположного катета к прилежащему. Данная функция vbscript возвращает значение в радианах на промежутке от –pi/2 до pi/2.
'*********************************** ' Арктангенс угла ' atn.vbs '*********************************** Dim a,b a = Atn(25) b = Atn(24.7) MsgBox a & vbCrLf & b |
Cos(х) – Косинус угла x, угол задаем в радианах, на выходе получим промежуток от -1 до 1.
'*********************************** ' Косинус ' cos.vbs '*********************************** Dim a,b,c,pi ' вычисляем pi pi=4*atn(1) a = Cos(180*(pi/180)) b = Cos(90*(pi/180)) c = Cos(60*(pi/180)) MsgBox a & vbCrLf & b & vbCrLf & c |
Sin(x) – Синус угла x, угол задаем в радианах, на выходе получим промежуток от -1 до 1.
'*********************************** ' Синус ' sin.vbs '*********************************** Dim a,b,c,pi ' вычисляем pi pi=4*atn(1) a = Sin(180*(pi/180)) b = Sin(90*(pi/180)) c = Sin(60*(pi/180)) MsgBox a & vbCrLf & b & vbCrLf & c |
Ехр(х) – Позволяет получить экспоненту, возведенную в число x.
'*********************************** ' Экспонента ' exp.vbs '*********************************** Dim e ' вычисляем pi e=exp(1) MsgBox "Экспонента ровна: " & e |
Int(x) – Отбрасывает дробную часть числа х и возвращает его целое значение.
'*********************************** ' Целая часть ' int.vbs '*********************************** MsgBox "3.145: " & int(3.145) & vbCrLf & "100.9: " & int(100.9) |
Log(x) — Натуральный логарифм из числа х, параметр x должен быть больше 0. Для вычисления десятичного логарифма применяется формула: log10 = log(x)/log(10).
'*********************************** ' Логарифм ' log.vbs '*********************************** dim logN, log10 dim x x=25 logN = log(x) log10 = log(x)/log(10) MsgBox logN & vbCrLf & log10 |
Rnd[(x)] – Используя данную функцию языка vbscript можно генерировать случайное число. На выходе мы получим значение в диапазоне 0 <= Rnd < 1. Параметр x позволяет управлять логикой генерации значения:
- x<0 – одинаковое значение при каждом вызове rnd().
- x>0 – следующее случайное число в последовательности.
- x=0 – снова вернуть последнее сгенерированное случайное число.
- x отсутствует – следующее случайное число в последовательности.
Что бы инициализировать генератор случайных чисел нужно прежде прописать функцию Randomize [number].
'*********************************** ' генерация случайных чисел ' rnd.vbs '*********************************** dim x Randomize x = rnd(1) MsgBox x |
Round(x [, numdecimal]) — Возвращает результат округления числа х с точностью до numdecimal знаков после запятой.
'*********************************** ' Округление чисел ' round.vbs '*********************************** dim a,b a = round(33.5) '34 b = round(125.12345,3) ' 125.123 MsgBox a & vbCrLf & b |
Sgn(x) – Вернёт 1, если x больше 0, -1 – если x меньше 0 и 0 – если x равен 0. Фактически, Sgn(x) позволяет определить знак числа.
'*********************************** ' Определяем знак числа ' sgn.vbs '*********************************** dim a,b, c a=0 b=-200 c=100 MsgBox sgn(a) & vbCrLf & sgn(b) & vbCrLf & sgn(c) |
Sqr(x) — Вычисляет квадратный корень из числа х.
'*********************************** ' Квадратный корень ' sqr.vbs '*********************************** Dim a,b,c a = Sqr(4) b = Sqr(44.3333) c = Sqr(0) MsgBox a & vbCrLf & b & vbCrLf & c |
VBscript функции для работы с подтипами данных
IsArray(ехрr) – Вернёт true, если ехрr является массивом и false – в противном случае.
IsDate(ехрr) — Возвращает true, если параметр ехрr задает корректную дату (т. е. переменная ехрr является переменной подтипа Date), и false в противном случае.
IsEmpty(ехрr) — Возвращает true, если переменная ехрr объявлена, но не инициализирована.
IsNull(expr) — Возвращает true, если переменная expr не содержит никаких корректных данных.
IsNumeric(expr) — Возвращает true, если выражение expr может быть рассмотрено в качестве числа, и false в противном случае.
IsObject(expr) — Возвращает true, если переменная expr является указателем на внешний объект, и false в противном случае.
VarType(varname) — Возвращает числовое значение, соответствующее подтипу переменной varname.
TypeName(varname) — Возвращает строковое значение, соответствующее подтипу переменной varname.
'*********************************** ' Работа с подтипами данных ' type.vbs '*********************************** Option Explicit dim my_class, my_arr dim my_date, my_null, my_empt, my_num dim list my_null = Null my_date = #10/10/2000# my_num=100 Class new_class Dim a,b,c End Class set my_class = new new_class my_arr = Array(3,7,"строка", 8.5) ' IsArray, IsDate, IsEmpty, IsNull, IsNumeric, IsObject list="" & IsArray(my_arr) & vbCrLf list=list & IsDate(my_date) & vbCrLf list=list & IsEmpty(my_empt) & vbCrLf list=list & IsNull(my_null) & vbCrLf list=list & IsNumeric(my_num) & vbCrLf list=list & IsObject(my_class) MsgBox list & vbCrlf & vbCrlf & VarType(my_class) & vbCrlf & TypeName(my_class) |
И так, в нынешнем обзоре мы рассмотрели две группы vbscript функций: математические и для работы с типами данных. Обратите внимание, что в статье содержится ссылка на архив с примерами.