Выражение – комбинация операндов и операций, задающая порядок вычисления некоторого значения.
Операнд в простейшем случае является константой или идентификатором. В общем случае каждый операнд выражения также представляет собой выражение, имеющее некоторое значение.
Операции определяют действия, выполняемые над операндами. Возвращают некоторое значение.
Оператор -это некоторая конструкция, присущая данному конкретному языку, изменяющая состояние памяти компьютера, но ничего не возвращающая.
Замечание: Не стоит путать два таких понятия как оператор и операция. Главное их отличие состоит в том, что операция возвращает значение, а оператор нет.
Оператор присваивания предписывает вычисление выражения, находящегося правее знака (=) и присвоение полученного значения переменной, находящейся левее оператора присваивания. Пример:
' Вычисляется значение арифметического выражения a+b и результат помещается в x
x=a+b
Переменная и выражение должны быть совместимы по типу. В данном примере, переменные x, a и b должны быть числами, в противном случае при исполнении данного оператора возникнет ошибка о несоответствии типа.
Замечание: В одной строке можно вводить несколько операторов подряд, разделяя их двоеточиями (:). Однако не злоупотребляйте этой возможностью, иначе ваши программы станут нечитабельными.
Операции конкатенации:
В VBScript используются такие операции конкатенации строк, как + и &
Пример использования:
n=300 ' присваиваем переменной значение 300
' Функция CStr преобразует числовое значение переменной n в строковое, которое
'можно сложить с другой строкой, а результат присвоить переменной s
s=CStr(n)+" лет Санкт-Петербургу!!!"
msgbox s ' выводим в диалоговом окне значение строки s
Конкатенация строк при помощи операции + не самая хорошая практика. Операция + складывает два операнда (если последние – строки, происходит операция конкатенации). Лучший подход – объединить строки при помощи операции &, так как при объединении операцией & двух значений разного формата VBScript автоматически преобразует типы без использования функции CSrc. Пример:
n=300
s=n&" лет Санкт-Петербургу!!!" ' Ошибка типов в данном примере не возникнет
msgbox s
Арифметические операции возвращают переменной числовое значение. Примеры арифметических операций приведены в Таблице 5:
Таблица 5 – Примеры арифметических операций
Операция
Описание
Пример
^
Возведение в степень
x=y^показатель
+
Сложение
x=a+b
-
Вычитание или знак отрицательного числа
x=-30 или x=a-50
*
Умножение
x=a*40
/
Деление
x=a/b
\
Целочисленное деление
x=a\b
Mod
Остаток от деления
x=a Mod b
Логические операции возвращают переменной значение типа Bool. Примеры логических операций приведены в Таблице 6:
Таблица 6 – Примеры логических операций
Операция
Описание
Пример
Not
НЕ
x=Not y
And
И
x=a And b
Or
ИЛИ
x=a Or b
Xor
Исключающее ИЛИ
x=a Xor b
Eqv
Эквивалентность
x=a Eqv b
Imp
Импликация
x=a Imp b
Операции сравнения служат для сравнения выражений (в которых могут быть числа, строки и т.д.). Смотри Таблицу 7.
Таблица 7 – Перечень операций сравнения
Операция
Описание
Пример
=
Равно
a=b
<=
Меньше или равно
a<=b
>=
Больше или равно
a>=b
<>
Не равно
a<>b
Приоритет операций:
При вычислении значений выражений, состоящих из нескольких операций, синтаксический анализатор VBScript использует старшинство операций, которое приведено в Таблице 8. Чем меньше номер, тем больше приоритет.
Таблица 8 – Старшинство операций
Операторы
Номер
^ (возведение в степень)
- (знак отрицательного числа)
*
/
\
Mod (остаток от деления)
+ (сложение)
- (вычитание)
+ (конкатенация)
& (конкатенация)
=, >,<, >=, <=, <>
And
Or
Xor
Eqv
Imp
Замечание: приоритет у операций одинаков, они выполняются по порядку слева направо.
Некоторые встроенные функции приведены в таблице 9:
Таблица 9 – Некоторые встроенные функции
Функция
Пример использования
Возвращённое значение
Описание
Abs(x)
a= Abs(-12,08)
12,08
Абсолютное значение числа
Asc(x)
a= Asc(“s”)
ASCI код символа
Chr(x)
a=Chr(115)
s
Символ, соответствующий коду
Fix(x)
a= Fix(-2.9)
-2
Округление до целого
Int(x)
a=Int(-3.1)
-4
Округление до целого
Hex(x)
a=Hex(543)
21F
Шестнадцатеричное представление
Oct(x)
a=Oct(543)
Восьмеричное представление
Sgn(x)
a=Sgn(-1.5)
-1
Знак числа
Date
a=Date
11.04.2003
Текущая дата
Time
a=Time
14:03:42
Текущее время
Now
a=Now
11.04.2003 14:03:42
Текущие дата и время
Atn(x)
a=Atn(0.5)
0,463647…
Арктангенс числа
Tan(x)
a=Tan(0.5)
0,5463024…
Тангенс числа
Cos(x)
a=Cos(15)
-0,759687…
Косинус числа
Sin(x)
a=Sin(15)
0,6502878…
Синус числа
Exp(x)
a= Exp(0.37)
1,447734
Экспонента
Log(x)
a= Log(2.7)
0,993251…
Натуральный логарифм
Sqr(x)
a= Sqr(1024)
Квадратный корень
Rnd(x)
a= Rnd(1)
0,34800238…
Случайное число 0..1
Randomize
Randomize
Установка генератора случайных чисел в новое исходное положен ие состояние в зависимости от текущего времени
Замечание: если аргументом функции является десятичное число, то десятичная часть отделяется от целой при помощи символа точка (.)
ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ
Пример 1
'Имя файла MsgBox.vbs
'Вывод строчки в окне вывода
k= "Hello, World!"
msgbox k
Пример 2
'Имя файла Error.vbs
'Вывод окна, содержащего сообщение об ошибке
MsgBox "Произошла ошибка выполнения программы! "&VbCrLf&_