Выражения в Visual Basic

Содержание

Слайд 2

Выражения в Visual Basic.

Выражения в Visual Basic.

Слайд 3

Выражения в Visual Basic.

Выражения в Visual Basic.

Слайд 4

Арифметические выражения Выражения в Visual Basic.

Арифметические выражения

Выражения в Visual Basic.

Слайд 5

Арифметические выражения. Другие арифметические выражения создаются из простейших форм, с использованием скобок и арифметических операторов.

Арифметические выражения.

Другие арифметические выражения создаются из простейших форм, с использованием скобок

и арифметических операторов.
Слайд 6

Арифметические операторы. Dim MyValue MyValue = 2 ^ 2 ' Возвратит

Арифметические операторы.

Dim MyValue
MyValue = 2 ^ 2 ' Возвратит 4.
MyValue =

2 ^ 3 ^ 3 ' Возвратит 512 (2^3=8, 8^3=512)
MyValue = (-5) ^ 3 ' Возвратит -125.
Слайд 7

Возведение в степень. Замечания: число может быть отрицательное, только в том

Возведение в степень.

Замечания:

число может быть отрицательное, только в том случае, когда

степень - целое число;
если в одном выражении используется несколько операторов ^, то вычисление происходит слева направо;
обычно тип результата – Double, однако, если или степень, или число – Null-выражение, то результат тоже Null.
Слайд 8

Арифметические операторы. Dim MyValue MyValue = 2 * 2 ' Возвратит

Арифметические операторы.

Dim MyValue
MyValue = 2 * 2 ' Возвратит 4.
MyValue =

459.35 * MyValue ' Возвратит 495.35 * 4
Слайд 9

Умножение. Замечания: тип результата обычно такой же, как и самый точный

Умножение.

Замечания:

тип результата обычно такой же, как и самый точный тип из

двух чисел;

Порядок точности, от большего к меньшему:

есть исключения:

Если перемножаются Single и Long, то результат - Double;
Если тип данных результата – Long, Single или Date, в который не помещается сам результат выражения, то результат конвертируется в Variant, содержащий Double.
Если одно из чисел - Null, то оно интерпретируется просто как обычный 0.

Слайд 10

Арифметические операторы. Dim MyValue MyValue = 10 / 4 ' Возвратит

Арифметические операторы.

Dim MyValue
MyValue = 10 / 4 ' Возвратит 2.5.
MyValue =

10 / 3 ' Возвратит 3.333333.
Слайд 11

Деление. Замечания: Результат обычно имеет тип Double; есть исключения: Если оба

Деление.

Замечания:

Результат обычно имеет тип Double;

есть исключения:

Если оба выражения имеют тип Byte,

Integer, Single, то результат Single. Однако если размеры выражения не вписываются в рамки Single, происходит ошибка;
Если оба выражения имеют тип Variant, содержащий Byte, Integer или Single, то результат Single Variant. Однако если размеры выражения не вписываются в рамки Single, то Double Variant;
Если одно из чисел имеет тип Decimal, то и результат – Decimal;
Если одно из чисел - Null, то оно интерпретируется просто как обычный 0.
Слайд 12

Арифметические операторы. Dim MyValue MyValue = 11 \ 4 ' Возвратит

Арифметические операторы.

Dim MyValue
MyValue = 11 \ 4 ' Возвратит 2.
MyValue =

9 \ 3 ' Возвратит 3.
MyValue = 100 \ 3 ' Возвратит 33.
Слайд 13

Целочисленное деление. Замечания: перед тем, как происходит такое деление, выражения округляются

Целочисленное деление.

Замечания:

перед тем, как происходит такое деление, выражения округляются до Byte,

Integer или Long выражений;
обычно тип данных результата Byte, Byte Variant, Integer, Integer Variant, Long, или Long Variant;
если любое из выражений Null, то и результат Null;
любое выражение, содержащее Empty интерпретируется как 0.
Слайд 14

Арифметические операторы. Dim MyValue MyValue = 10 Mod 5 ' Возвратит

Арифметические операторы.

Dim MyValue
MyValue = 10 Mod 5 ' Возвратит 0.
MyValue =

10 Mod 3 ' Возвратит 1.
MyValue = 12 Mod 4.3 ' Возвратит 0.
MyValue = 12.6 Mod 5 ' Возвратит 3.
Слайд 15

Остаток от деления. Замечания: при делении числа с плавающей точкой округляются;

Остаток от деления.

Замечания:

при делении числа с плавающей точкой округляются;
Например: 19 Mod

6.7 равно 5;
Результат обычно имеет тип Byte, Byte Variant, Integer, Integer Variant, Long, или Variant содержащий Long;
если любое из выражений Null, то и результат Null;
любое выражение, содержащее Empty интерпретируется как 0.
Слайд 16

Арифметические операторы. Dim MyResult, Var1, Var2, Dim d As Date MyResult

Арифметические операторы.

Dim MyResult, Var1, Var2, Dim d As Date
MyResult = 4257.04

+ 98112 ' Возвратит 102369.04
Var1 = "34”
Var2 = 6 ' Инициализируем смешанные переменные
MyResult = Var1 + Var2 ' Возвратит 40
Var1 = "34”
Var2 = “6" ' Инициализируем переменные со строками
MyResult = Var1 + Var2 ' Возвратит "346" - произошла конкатенация а не сложение!
d = DateSerial(2008,11,14) ' инициализация даты 14.11.2008
d = d + 7 ' теперь d содержит дату 21.11.2008 т.е. мы прибавили 7 дней
Слайд 17

Сложение. Замечания: Когда вы используете оператор +, вы не можете определить

Сложение.

Замечания:

Когда вы используете оператор +, вы не можете определить что произойдёт,

сложение или конкатенация строк;
Для конкатенации используйте оператор &, чтобы избежать недоразумений и сделать код более читабельным
Слайд 18

Сложение. Замечания: если оба выражения имеют численный тип (Byte, Boolean, Integer,

Сложение.

Замечания:

если оба выражения имеют численный тип (Byte, Boolean, Integer, Long, Single,

Double, Date, Currency, или Decimal) - то происходит их сложение;
если оба выражения строки то происходит конкатенация;
если одно из выражений имеет численный тип, а другое любое Variant значение, включая Null, то происходит сложение ;
если одно из выражений строка, а другое любое Variant значение, то происходит конкатенация ;
если одно из выражений содержит Empty, то возвращается второе, не изменённое выражение ;
если одно из выражений имеет численный тип, а другое - строка, то возникает ошибка несовпадения типов ;
если любое из выражений Null, то и результат Null;

Если одно из выражений не Variant, то применяются следующие правила:

Слайд 19

Сложение. Замечания: если оба выражения числа - то они складываются; если

Сложение.

Замечания:

если оба выражения числа - то они складываются;
если оба выражения строки

- то они конкатенируются ;
если одно из выражений число, а другое строка - происходит сложение;

Если оба выражения Variant, то применяются следующие правила:

Слайд 20

Сложение. Замечания: Для обычного сложения тип данных результата обычно такой же,

Сложение.

Замечания:

Для обычного сложения тип данных результата обычно такой же, как и

самый точный тип из двух чисел;

Порядок точности, от большего к меньшему:

есть исключения:

Если складываются Single и Long, то результат - Double;
Если выражение с типом Date складывается с любым другим выражением, то результат - Date.
Если одно или оба выражения Null, то результат тоже Null.
Если оба выражения содержат Empty, результат Integer. Если только одно, то в качестве результата возвращается неизменённое второе выражение.

Слайд 21

Арифметические операторы. Dim MyResult, Dim d1 As Date, Dim d2 As

Арифметические операторы.

Dim MyResult,
Dim d1 As Date, Dim d2 As Date,


Dim razn As Long
MyResult = 4 - 2 ' Возвратит 2
MyResult = 459.35 - 334.90 ' Возвратит 124.45
d1 = DateSerial(1983,10,14) ' инициализация даты 14.10.1983
d2 = DateSerial(2008,10,14) ' инициализация даты 14.10.2008
razn = d2 – d1 ' разница в днях (9132)
Слайд 22

Вычитание, смена знака. Замечания: Оператор “–“ используется для нахождения разницы между

Вычитание, смена знака.

Замечания:

Оператор “–“ используется для нахождения разницы между двумя числами,

или для изменения знака выражения;
Тип данных результата обычно такой же, как и самый точный тип из двух чисел.

Порядок точности, от большего к меньшему:

есть исключения:

Если в вычитании участвуют типы Single и Long, то результат - Double;
Если в вычитании используется выражение с типом Date, то результат - Date.
Вычитание двух дат, даёт в результате Double
Если одно или оба выражения Null, то результат тоже Null.
Если одно из выражений Empty, то оно интерпретируется как 0.

Слайд 23

Выражения отношения Выражения в Visual Basic.

Выражения отношения

Выражения в Visual Basic.

Слайд 24

Выражения отношения. Синтаксис: результат = выражение1 оператор_сравнения выражение2 результат = объект1

Выражения отношения.

Синтаксис:

результат = выражение1 оператор_сравнения выражение2
результат = объект1 Is

объект2
результат = строка Like образец

Параметры:

результат - обязателен; любая численная переменная
выражение - обязательно; любое выражение
оператор_сравнения - обязателен; любой оператор сравнения
объект - обязателен; имя любого объекта
строка - обязательна; любое строковое выражение
образец - обязателен; любое строковое выражение, или диапазон букв и цифр

Слайд 25

Выражения отношения. Список операторов сравнения и условия, по которым определяется результат выражения

Выражения отношения.

Список операторов сравнения и условия, по которым определяется результат выражения

Слайд 26

Выражения отношения. Замечания: Операторы Is и Like выполняют специфические функции, и

Выражения отношения.

Замечания:

Операторы Is и Like выполняют специфические функции, и их таблица

сравнения отличается от приведённой;
Когда сравниваются два выражения, не всегда можно определить, что будет сравниваться, числа или строки.
Слайд 27

Выражения отношения. Замечания: если оба выражения имеют численный тип - то

Выражения отношения.

Замечания:

если оба выражения имеют численный тип - то происходит сравнение

чисел;
если оба выражения строки то происходит сравнение строк;
меньшая строка та, первая и последующие буквы которой имеют меньший ASCII код
если одно из выражений число, а другое Variant , который может быть трактован как число, то происходит сравнение чисел;
если одно из выражений число, а другое Variant строка, которая не может быть трактована как число, то возникает ошибка (Type mismatch);
если одно из выражений строка, а другое любое Variant значение (даже Null), то происходит строковое сравнение.
если одно из выражений Empty, а другое число, то происходит сравнение чисел, где Empty рассматривается как 0.
если одно из выражений Empty, а другое строка, то происходит сравнение строк, где Empty рассматривается как пустая строка "".

Если оба выражения имеют тип, отличный от Variant:

Слайд 28

Выражения отношения. Замечания: если оба Variant выражения содержат числа - то

Выражения отношения.

Замечания:

если оба Variant выражения содержат числа - то происходит сравнение

чисел;
если оба Variant выражения содержат строки то происходит сравнение строк;
если одно из Variant выражений содержит число, а другое строку, то числовое выражение меньше строкового ;
если одно из Variant выражений Empty, а другое число, то Empty рассматривается как 0.
если одно из Variant выражений Empty, а другое строка, то Empty рассматривается как пустая строка "".
Если оба выражения Empty, то они рассматриваются как равные.

Если оба выражения имеют тип Variant, то выражения сравниваются, согласно тем типам данных, которые содержит Variant:

Слайд 29

Выражения отношения. Замечания: если Single сравнивается с Double, то Double округляется

Выражения отношения.

Замечания:

если Single сравнивается с Double, то Double округляется до точности

Single;
если Currency сравнивается с Single или Double, то Single или Double конвертируются в Currency;
если Decimal сравнивается с Single или Double, то Single или Double конвертируются в Decimal.
Слайд 30

Выражения отношения. Замечания: При потере дробной части, выражения могут интерпретироваться как

Выражения отношения.

Замечания:

При потере дробной части, выражения могут интерпретироваться как равные, хотя

на самом деле, одно от другого будет отличаться (хоть и на маленькое значение):
Для Currency любая дробная часть меньшая, чем .0001, может быть утеряна;
Для Decimal значение 1E-28 может быть утеряно, или может произойти ошибка.
Слайд 31

Выражения отношения. Примеры : Dim MyResult, Var1, Var2 MyResult = (45

Выражения отношения.

Примеры :

Dim MyResult, Var1, Var2
MyResult = (45 < 35) '

Возвратит False.
MyResult = (45 = 45) ' Возвратит True.
MyResult = (4 <> 3) ' Возвратит True.
MyResult = ("5" > "4") ' Возвратит True.
Var1 = "5": Var2 = 4
MyResult = (Var1 > Var2) ' Возвратит True.
Var1 = 5: Var2 = Empty
MyResult = (Var1 > Var2) ' Возвратит True.
Var1 = 0: Var2 = Empty
MyResult = (Var1 = Var2) ' Возвратит True.
Слайд 32

Выражения отношения. Dim MyObject, YourObject, ThisObject, OtherObject, _ ThatObject, MyCheck Set

Выражения отношения.

Dim MyObject, YourObject, ThisObject, OtherObject, _ ThatObject, MyCheck
Set YourObject = MyObject

' создаём ссылки на объекты
Set ThisObject = MyObject
Set ThatObject = OtherObject
MyCheck = YourObject Is ThisObject ' Возвратит True.
MyCheck = ThatObject Is ThisObject ' Возвратит False.
' Предполагаем, что MyObject <> OtherObject
MyCheck = MyObject Is ThatObject ' Возвратит False.
Слайд 33

Оператор сравнения Is. Замечания: Если объект1 и объект2 ссылаются на один

Оператор сравнения Is.

Замечания:

Если объект1 и объект2 ссылаются на один и тот

же объект, то результат - True, если нет, то False.
Две переменные могут ссылаться на один и тот же объект несколькими путями.

Например:

Set A = B ' A ссылается на тот же объект, что и B
Set A = С
Set B = С ' A и B ссылаются на один и тот же объект-C

Слайд 34

Выражения отношения. Dim MyCheck MyCheck = "aBBBa" Like "a*a" ' Возвратит

Выражения отношения.

Dim MyCheck
MyCheck = "aBBBa" Like "a*a" ' Возвратит True.
MyCheck =

"F" Like "[A-Z]" ' Возвратит True.
MyCheck = "F" Like "[!A-Z]" ' Возвратит False.
MyCheck = "a2a" Like "a#a" ' Возвратит True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Возвратит True.
MyCheck = "BAT123khg" Like "B?T*" ' Возвратит True.
MyCheck = "CAT123khg" Like "B?T*" ' Возвратит False.
myString = "312T-87GD-8922"
If myString Like "###[A-Z]-##[A-Z][A-Z]-####" Then ...
Слайд 35

Оператор сравнения строк Like. Замечания: этот оператор можно использовать для проверки

Оператор сравнения строк Like.

Замечания:

этот оператор можно использовать для проверки строки String

на маску Pattern;
если строка подходит под маску, то результат True, иначе – False;
если одно из выражений Null - результат тоже Null;
Слайд 36

Оператор сравнения строк Like. Замечания: если установлен тип Binary (т.е. двоичное

Оператор сравнения строк Like.

Замечания:

если установлен тип Binary (т.е. двоичное сравнение), то

строки сравниваются согласно их Ascii кодам:
A < B < E < Z < a < b < e < z < А < К < Я < а < к < я
если установлен тип Text (текстовое сравнение), то большие и маленькие буквы – равны:
A=a) < (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

Поведение оператора Like зависит от установленного по умолчанию типа сравнения строк (оператор Option Compare):

Слайд 37

Оператор сравнения строк Like. Замечания: для того чтобы проверить принадлежность строки

Оператор сравнения строк Like.

Замечания:

для того чтобы проверить принадлежность строки на маску,

содержащую спец. символы нужно заключить из в квадратные скобки [];
всё, что находится в скобках не должно содержать никаких разделителей (пробелов, запятых и т.д.), иначе они тоже будут включены в последовательность.

В маске можно использовать следующие спец. символы:

Слайд 38

Оператор сравнения строк Like. Замечания: (!) знак в начале списка символов

Оператор сравнения строк Like.

Замечания:

(!) знак в начале списка символов говорит о

том, что нужно искать символы, не входящие в этот список;
если вам необходимо найти сам знак !, то нужно поставить скобки [!]
(–) используется для задания диапазона символов;
когда задаётся диапазон символов, то он должен быть возрастающим по ASCII кодам;
[A-Z] - правильная маска, [Z-A] - неправильная маска
последовательность [] интерпретируется как пустая строка "".
Слайд 39

Конкатенация строк Выражения в Visual Basic.

Конкатенация строк

Выражения в Visual Basic.

Слайд 40

Конкатенация строк.

Конкатенация строк.

Слайд 41

Конкатенация строк. Dim MyStr MyStr = "Hello" & " World "

Конкатенация строк.

Dim MyStr
MyStr = "Hello" & " World " ' Возвратит

строку "Hello World ".
MyStr = "ПроВерКА" & 123 & " ПроВерка"
' Возвратит строку "ПроВерКА 123 ПроВерка".
Слайд 42

Оператор конкатенации . Замечания: если в выражение не строка, то она

Оператор конкатенации .

Замечания:

если в выражение не строка, то она конвертируется в

String Variant.
тип данных результата - String только тогда, когда оба выражения имеют тип String, иначе результат String Variant;
если оба выражения Null, то результат тоже Null;
если только одно из выражений содержит Null значение, то оно интерпретируется как пустая строка "";
Empty также интерпретируется как пустая строка "".
Слайд 43

Логические выражения Выражения в Visual Basic.

Логические выражения

Выражения в Visual Basic.

Слайд 44

Логические выражения. Другие логические выражения состоят из простейших логических форм, приведенных

Логические выражения.

Другие логические выражения состоят из простейших логических форм, приведенных выше,

с использованием скобок и логических операторов.
Слайд 45

Логические выражения.

Логические выражения.

Слайд 46

Логические выражения. Dim A, B, C, D, MyCheck A = 10

Логические выражения.

Dim A, B, C, D, MyCheck
A = 10 : B

= 8 : C = 6 : D = Null
MyCheck = A > B And B > C ' Возвратит True.
MyCheck = B > A And B > C ' Возвратит False.
MyCheck = A > B And B > D ' Возвратит Null.
MyCheck = A And B
' Возвратит 8 (битовое сравнение 1010 and 1000 = 1000).
Слайд 47

Оператор And. Следующая таблица показывает, как работает оператор And :

Оператор And.

Следующая таблица показывает, как работает оператор And :

Слайд 48

Оператор And. Оператор And может быть также использован для проверки битов

Оператор And.

Оператор And может быть также использован для проверки битов числа.

Для

битов оператор And работает следующим образом:
Слайд 49

Логические выражения. Dim A, B, C, D, MyCheck A = 10

Логические выражения.

Dim A, B, C, D, MyCheck
A = 10 : B

= 8 : C = 6 : D = Null
MyCheck = A > B Or B > C ' Возвратит True.
MyCheck = B > A Or C > B ' Возвратит False.
MyCheck = A > B Or B > D ' Возвратит True.
MyCheck = B > D Or B > A ' Возвратит Null.
MyCheck = A Or 5
' Возвратит 15 (битовое сравнение 1010 or 0101 = 1111).
Слайд 50

Оператор Or. Следующая таблица показывает, как работает оператор Or:

Оператор Or.

Следующая таблица показывает, как работает оператор Or:

Слайд 51

Оператор Or. Оператор Or может быть также использован для установки определённых

Оператор Or.

Оператор Or может быть также использован для установки определённых битов

числа.

Для битов оператор Or работает следующим образом:

Слайд 52

Логические выражения. Dim A, B, C, D, MyCheck A = 10

Логические выражения.

Dim A, B, C, D, MyCheck
A = 10 : B

= 8 : C = 6 : D = Null
MyCheck = A > B Xor B > C ' Возвратит False.
MyCheck = B > A Xor B > C ' Возвратит True.
MyCheck = B > A Xor C > B ' Возвратит False.
MyCheck = B > D Xor A > B ' Возвратит Null.
MyCheck = A Xor B
' Возвратит 2 (инвертирование битов 1010 xor 1000 = 0010).
Слайд 53

Оператор Xor. Следующая таблица показывает, как работает оператор Xor: Xor отличается

Оператор Xor.

Следующая таблица показывает, как работает оператор Xor:

Xor отличается от

Or, только тем, что когда оба бита единицы, Xor выдаёт 0.
Слайд 54

Оператор Xor. Оператор Xor может быть также использован для инвертирования определённых

Оператор Xor.

Оператор Xor может быть также использован для инвертирования определённых битов

числа.

Для битов оператор Xor работает следующим образом:

Оператор Xor интересен тем свойством, то при его двойном применении он выдаёт то же число.
Это часто используют в криптографии.

Слайд 55

Оператор Xor. Интересным примером использования оператора Xor является обмен значениями двух

Оператор Xor.

Интересным примером использования оператора Xor является обмен значениями двух численных

переменных:

Теперь переменная a содержит значение переменной b, и наоборот

Dim A As Long, B As Long
A = 4
B = 7
A = A Xor B
B = A Xor B
A = A Xor B

Слайд 56

Логические выражения. Dim A, B, C, D, MyCheck A = 10

Логические выражения.

Dim A, B, C, D, MyCheck
A = 10 : B

= 8 : C = 6 : D = Null
MyCheck = Not (A > B) ' Возвратит False.
MyCheck = Not (B > A) ' Возвратит True.
MyCheck = Not (С > D) ' Возвратит Null.
MyCheck = Not A ' Возвратит -11 (все биты инвертированы
' Not 00001010 = 11110101)
Слайд 57

Оператор Not. Следующая таблица показывает, как работает оператор Not:

Оператор Not.

Следующая таблица показывает, как работает оператор Not:

Слайд 58

Оператор Not. Оператор Not может быть также использован для инвертирования всех

Оператор Not.

Оператор Not может быть также использован для инвертирования всех битов

числа.

Для битов оператор Not работает следующим образом:

Слайд 59

Логические выражения. Dim A, B, C, D, MyCheck A = 10

Логические выражения.

Dim A, B, C, D, MyCheck
A = 10 : B

= 8 : C = 6 : D = Null
MyCheck = A > B Eqv B > C ' Возвратит True.
MyCheck = B > A Eqv B > C ' Возвратит False.
MyCheck = A > B Eqv B > D ' Возвратит Null.
MyCheck = A Eqv B
' Возвратит -3 (сравнение битов 00001010 eqv 00001000 = 11111101)
Слайд 60

Оператор Eqv. Следующая таблица показывает, как работает оператор Eqv:

Оператор Eqv.

Следующая таблица показывает, как работает оператор Eqv:

Слайд 61

Оператор Eqv. Оператор Eqv может быть также использован для побитного сравнения

Оператор Eqv.

Оператор Eqv может быть также использован для побитного сравнения чисел.

Для

битов оператор Eqv работает следующим образом:
Слайд 62

Логические выражения. Dim A, B, C, D, MyCheck A = 10

Логические выражения.

Dim A, B, C, D, MyCheck
A = 10 : B

= 8 : C = 6 : D = Null
MyCheck = A > B Imp B > C ' Возвратит True.
MyCheck = A > B Imp C > B ' Возвратит False.
MyCheck = B > A Imp C > B ' Возвратит True.
MyCheck = B > A Imp C > D ' Возвратит True.
MyCheck = C > D Imp B > A ' Возвратит Null.
MyCheck = B Imp A
' Возвратит -1 (импликация битов 00001000 imp 00001010 = 11111111)

Импликация - вовлечение, включение

Слайд 63

Оператор Imp. Следующая таблица показывает, как работает оператор Imp:

Оператор Imp.

Следующая таблица показывает, как работает оператор Imp:

Слайд 64

Оператор Imp. Для битов оператор Imp работает следующим образом:

Оператор Imp.

Для битов оператор Imp работает следующим образом:

Слайд 65

Приоритеты операторов Выражения в Visual Basic.

Приоритеты операторов

Выражения в Visual Basic.

Слайд 66

Приоритеты операторов. Когда в одном выражении встречаются арифметические, логические операторы и

Приоритеты операторов.

Когда в одном выражении встречаются арифметические, логические операторы и операторы

отношения, они выполняются со следующими приоритетами :