Лекция: Операторы и операции
Выражение – комбинация операндов и операций, задающая порядок вычисления некоторого значения.
Операнд в простейшем случае является константой или идентификатором. В общем случае каждый операнд выражения также представляет собой выражение, имеющее некоторое значение.
Операции определяют действия, выполняемые над операндами. Возвращают некоторое значение.
Оператор -это некоторая конструкция, присущая данному конкретному языку, изменяющая состояние памяти компьютера, но ничего не возвращающая.
Замечание: Не стоит путать два таких понятия как оператор и операция. Главное их отличие состоит в том, что операция возвращает значение, а оператор нет.
Оператор присваивания предписывает вычисление выражения, находящегося правее знака (=) и присвоение полученного значения переменной, находящейся левее оператора присваивания. Пример:
‘ Вычисляется значение арифметического выражения 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 | Установка генератора случайных чисел в новое исходное положен ие состояние в зависимости от текущего времени |
Замечание: если аргументом функции является десятичное число, то десятичная часть отделяется от целой при помощи символа точка (.)