Лекция 5
математические операторы_ 1
Оператор присваивания 1
Арифметические операции 1
Целочисленное деление 1
Остаток от деления нацело_ 2
Возведение в степень 2
Порядок операций_ 2
математические функции_ 3
Логические операторы_ 3
Поразрядные логические операции_ 4
ПРОВЕРКА ВВЕДЁННЫХ ДАННЫХ 4
Математические операторы
Практически все компьютерные программы выполняют обработку числовых данных с помощью специальных математических операторов. В таблице приведён полный список математических операторов и соответствующие им знаки операций.
В Visual Basic математические операторы применяют для создания выражений. В выражениях можно использовать переменные, константы, свойства элементов управления, функции, математические операторы и скобки.
При создании выражения программист должен позаботиться о том, чтобы результат был сохранён в переменной, свойстве элемента управления, передан в качестве параметра функции или процедуре.
Оператор присваивания
Для передачи переменной вычисленного значения выражения нужно воспользоваться оператором присваивания. Синтаксис оператора присваивания имеет вид:
Переменная = Выражение
В правой части может находиться только идентификатор переменной или свойство объекта. Желательно, чтобы выражение и переменная были бы одного и того же типа. Если типы выражения и переменная не совпадают, то вызывается процедура преобразования типа данных, которые могут приводить к ошибкам.
При формировании выражения необходимо иметь в виду, что сначала вычисляется выражение, а потом вычисленное значение пересылается в область памяти, в которой хранится значение переменной. Поэтому одна и та же переменная может фигурировать в правой и левой части. Например, следующий оператор увеличивает значение переменной Х на единицу:
|
nХ = nХ + 1
Арифметические операции
Синтаксис оператора сложения, вычитания, умножения и деления имеют вид:
Result = Number1 Operator Number2 [ Operator Number3 ]
Параметр Result является переменной или свойством, в которое будет помещён результат вычислений. Операнды Number1, Number2 и Number3 могут быть переменными, числовыми литералами, свойством или значениями функции. Количество операндов в выражении не ограничено. Однородные операции выполняются последовательно слева направо.
Целочисленное деление
Синтаксис оператора целочисленного деления имеет вид:
Result = Number1 \ Number2 [ \ Number3 ]
Параметр Result и операнды Number1, Number2, Number3 – целые числа. При целочисленном делении в результате получают целое число, поскольку дробная часть отбрасывается. Например:
nX = 10 \ 3 { nX = 3 }
Остаток от деления нацело
Синтаксис оператора вычисления остатка от деления нацело имеет вид:
Result = Number1 mod Number2 [ mod Number3 ]
Параметр Result и операнды Number1, Number2, Number3 – целые числа. Оператор mod возвращает остаток от целочисленного деления. Например:
nX = 10 mod 3 { nX = 1 }
Возведение в степень
Синтаксис оператора возведение в степень имеет вид:
Result = Number ^ Power
Параметр Result и операнды Number и Power – вещественные числа. Возведение в степень – это операция умножения числа само на себя заданное количество раз, которое определяется показателем степени. В таблице приведены примеры использования оператора возведения в степень и описание ограничений.
|
Выражение | Оператор | Описание |
x = a ^ N | N-ная степень числа. N – целое, то а – любое число; N – нецелое, то а – неотрицательное число | |
x = a ^ (1/N) | Корень N-ной степени неотрицательного числа | |
x = a ^ (-N) | Отрицательная степень числа. N – целое, то а – любое число; N – нецелое, то а – неотрицательное число |
Необходимо отметить, что операция возведения в степень не позволяет извлекать корень нечётной степени из отрицательного числа, хотя эта операция в математике определена, например: . При попытке выполнить эту операцию в Visual Basic компилятор выдаст сообщение об ошибке. То, как обойти это ограничение, мы рассмотрим в следующей лекции.
Порядок операций
При вычислении сложных выражений Visual Basic выполняет операторы в указанном ниже порядке:
1. Возведение в степень (^).
2. Отрицание (–).
3. Умножение и деление (*, /).
4. Деление нацело (\).
5. Взятие остатка от деления (mod).
6. Сложение и вычитание (+, –).
Для изменения порядка выполнения операторов используют круглые скобки. Можно использовать любое количество вложенных скобок. После проведения расчётов в скобках, применяют обычный порядок выполнения операций.
Обратите внимание на то, что у операции возведения в степень самый высокий приоритет, т.е. эта операция будет выполнена самой первой.
Вычислим следующее выражение .
y = 27 ^ 1 / 3
После выполнения этого оператора y примет значение 9, а не 3 как следовало ожидать. Причина заключается в том, что 27 возводится в первую степень, а затем делится на 3. Поэтому для получения правильного результата нам необходимо изменить порядок выполнения операций с помощью скобок. Правильное выражение будет иметь вид:
|
y = 27 ^ (1 / 3)
Математические функции
В Visual Basic определены часто используемые элементарные математические функции, которые являются членами класса Math и описаны в справочной системе. Для того, чтобы ознакомиться с кратким описанием функции, воспользуйтесь броузером объектов:
Ø щёлкните на кнопке ObjectBrowser на стандартной панели инструментов или
Ø выберите команду меню View ► ObjectBrowser или
Ø нажмите клавишу F2
В списке Classes выберите класс Math. В списке Members of Math щёлкните по интересующей вас функции и прочтите и описание в нижней части диалогового окна.
В приведённой ниже таблице перечислены функции Visual Basic, их синтаксис и описание.
Синтаксис функции | Описание |
Function Abs (Number) | Возвращает абсолютное значение числа |
Function Atn (Number As Double ) As Double | Возвращает арктангенс числа |
Function Cos (Number As Double ) As Double | Возвращает косинус числа |
Function Exp (Number As Double) As Double | Возвращает основание натурального логарифма возведённого в заданную степень |
Function Log (Number As Double ) As Double | Возвращает логарифм числа |
Sub Randomize ([Number]) | Обновляет базу генератора случайных чисел |
Function Rnd ([Number]) As Single | Возвращает случайное число в диапазоне от 0 до единицы |
Function Sgn (Number) | Возвращает знак числа: |
Function Round (Number, [NumDigitsAfterDecimal As Long]) | Возвращает число, округлённое до заданного количества знаков после запятой |
Function Sin (Number As Double ) As Double | Возвращает синус числа |
Function Sqr (Number As Double ) As Double | Возвращает квадратный корень неотрицательного числа |
Function Tan (Number As Double ) As Double | Возвращает тангенс числа |
Логические операторы
Логические (Boolean) переменные могут хранить одно из двух значений: Истина (True) или Ложь (False). Присвоить значение логической переменной можно с помощью служебных слов True или False, например:
Dim bEnable as Boolean
bEnable = True
Присвоить значение логической переменной можно, поместив в правую часть оператора присваивания операцию сравнения, например:
Dim bEnable as Boolean, nA as Integer, nB as Integer
bEnable = nA > nB
Для логических переменных в Visual Basic определена операция логического отрицания, в результате которой возвращается значение противоположное значению операнда, например:
Dim bEnable as Boolean, bB as Boolean
bEnable = Not bB
Для логических переменных в Visual Basic определены операции: логическое И (And), логическое ИЛИ (Or), исключительное ИЛИ (Xor), логическая эквивалентность Eqv, логическое включение Imp. Операции выполняются с двумя операндами, и их синтаксис имеет вид:
[Result =] Expression1 Operator Expression2
Result – необязательный параметр, переменная логического типа;
Expression1 и Expression2 – обязательные параметры, выражения логического типа.
Логические операции над логическими данными дают результат логического типа по правилам, указанным в таблице.
A | B | A And B | A Or B | A Xor B | A Eqv B | A Imp B |
False | False | False | False | False | True | True |
False | True | False | True | True | False | True |
True | False | False | True | True | False | False |
True | True | True | True | False | True | True |
Поразрядные логические операции
Перечисленные выше логические операторы могут быть применены и к переменным целого типа (Byte, Integer, Long). При этом необходимо иметь в виду, что целое число в памяти хранится в виде последовательности нулей и единиц. Например, число типа Byte, равное 26, имеет в памяти следующий вид:
Это обстоятельство широко используется в тех случаях, когда значение целочисленной переменной используется для хранения набора флагов.
Поразрядные логические операции в этом случае применяются к соответствующим битам. Значение бита, равное 1 эквивалентно True, 0 – False. Синтаксис поразрядной операции имеет вид:
[Result =] Expression1 Operator Expression2
Result – необязательный параметр, переменная целого типа;
Expression1 и Expression2 – обязательные параметры, выражения целого типа.
Поразрядные логические операции над целочисленными данными дают результат целочисленного типа по правилам, указанным в таблице.
A | B | A And B | A Or B | A Xor B | A Eqv B | A Imp B | Not A |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
Например:
Dim A as Byte, B as Byte, C as Byte
A = 26 ‘A = 00011010
B = 6 ‘B = 00000110
C = A And B ‘C = 00000010 = 2
C = Not A ‘C = 11100101 = 229