Урок 10 по VBScript: Функции — математические и для работы с подтипами данных

Урок 10 по VBScript: Функции — математические и для работы с подтипами данных Программирование на VBSCRIPT

В этой статье мы рассмотрим математические 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
Подтипы данных - vbs функции

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 функций: математические и для работы с типами данных. Обратите внимание, что в статье содержится ссылка на архив с примерами.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий