Поразрядные логические операции




Лекция 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 на стандартной панели инструментов или

Ø выберите команду меню ViewObjectBrowser или

Ø нажмите клавишу 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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: