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

а)Весьма важной характеристикой переменных и констант является область их определения

(видимости). В VB есть три вида области определения, характеризующие доступность

переменной:

область блока: переменная доступна только внутри блока (блок –

последовательность инструкций, заканчивающаяся одной из строк Next, Loop, End If).

локальная область: переменная доступна только внутри процедуры;

область формы или модуля: переменная доступна только внутри формы или

модуля;

глобальная область: переменная доступна во всем проекте, то есть во всех

процедурах всех форм и модулей.

Переменные блока:

Они объявлены внутри блока и вне блока недоступны.

Локальные переменные:

Локальными являются переменные, объявленные внутри процедуры. Они доступны

только внутри этой процедуры.

Переменные формы или модуля:

Эти переменные определяются в коде формы или модуля (но не внутри процедуры) и

доступны только внутри соответствующей формы или модуля.

Глобальные переменные:

Глобальные переменные определяются в коде модуля (но не внутри процедуры).

При этом вместо оператора Dim используется зарезервированное слово Public.

Глобальные переменные доступны во всех модулях и формах проекта.

b) Локально объявленные переменные при выходе из процедуры удаляются из памяти, а при

новом вызове процедуры инициализируются заново. Их содержимое при выходе из

процедуры не сохраняется, что не всегда желательно.

VB дает возможность объявлять переменные как статические. При выходе из процедуры

содержимое статической переменной сохраняется. При новом вызове этой процедуры

переменная имеет значение, которое она имела при последнем выходе из этой процедуры.

Содержимое переменной сохраняется в течение всего времени, пока существует в памяти

форма или модуль.

Для объявления переменной как статической нужно вместо слова Dim использовать слово

Static:

5)Преобразование типа данных.

По умолчанию преобразования типов разрешены (Option Strict Off). Здесь

сочетание слов Strict Off означает отмену требования строгого соответствия типов.

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

добавить инструкцию Option Strict On. В этом случае все необходимые

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

применяя функции преобразования типов данных:

Имя функции К какому типу преобразуется аргумент
CBool Boolean
CByte Byte
CDate Date
CDbl Double
CDec Decimal
CInt Integer
CLng Long
Cobj Object
CShort Short
CSng Single
CStr String

Пример:

Dim a As Single, b As Single = 5, c As Integer = 1

a = b + CSng(c)

· При преобразовании числа с плавающей точкой в целое происходит округление до

ближайшего целого.

· При преобразовании целого числа в число с плавающей точкой дробная часть

принимается равной нулю.

· В случае преобразования целого типа в другой целый тип возможна ситуация, когда

целый тип с большим диапазоном значений преобразуется в целый тип с меньшим

диапазоном значений. Если значение, которое присваивается «короткому» типу,

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

выполнения. К оглавлению

· Строковые и числовые типы совместимы, если строку можно трактовать как число.

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

Операция Функция
[операнд1] + [операнд2] Сложение
[операнд1] - [операнд2] Вычитание
- операнд Перемена знака
[операнд1] * [операнд2] Умножение
[операнд1] / [операнд2] Деление
[операнд1] \ [операнд2] Целочисленное деление. Результат – целая часть отношения операндов без остатка
[операнд1] MOD [операнд2] Деление по модулю. Деление выполняется до получения целой части. Остаток возвращается как результат.
[операнд1] ^ [операнд2] Возведение в степень

умножение (*), когда один или оба операнды являются строкой символов, но при условии, что их значения, можно интерпретировать как числа:

Dim i, r As Integer, str As String

i = 5

str = “25”

r = i * str ‘String -> Integer

При этом особую осторожность следует соблюдать с операцией (+), которая в

зависимости от контекста может означать либо операцию сложения, либо операцию

сцепления.

В операции операнд1 + операнд2 символ (+) VB будет воспринимать как:

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

- операцию сложения, если один операнд имеет числовой тип, а второй является

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

- операцию сцепления, если один операнд имеет числовой тип, а второй является

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

- операцию сцепления, если оба операнда имеют строковый тип независимо от их

значений.

Пример.

Dim i As Integer

Dim r As Single

Dim st1 As String

i = 2

r = -1.3

St1 = r + i ‘Результат: “0.7”

‘Integer -> Single, Single -> String

Пример.

Dim st1, st2 As String

st1 = 25 ‘Результат: “25”

st2 = 15 ‘Результат: “15”

st2= st1 + st2 ‘Результат: “2515” К оглавлению

Произошло сцепление операндов,поскольку оба операнда

имеют строковый тип. Если один операнд будет иметь строковый, а другой – числовой, например, целый тип.

Введем следующий программный код:

Dim st1, st2 As String

st1 = 2

st2 = 3

st1 = 25 + st1 + st2 ‘Результат: “30”

‘String -> Integer, String -> Integer

7) Отношения, логический тип данных, логические операции.(неполный)

Операции отношения:

[операнд1] < [операнд2] Меньше Результат True, если отношение выполняется, или False, если отношение не выполняется
[операнд1] > [операнд2] Больше
[операнд1] <= [операнд2] Меньше или равно
[операнд1] => [операнд2] Больше или равно
[операнд1] = [операнд2] Равно
[операнд1] <> [операнд2] Не равно

В VB.NET определены логические операции: And (логическое умножение), Or

(логическое сложение), Not (логическое отрицание), а также Xor (логическое

исключительное сложение).

Операция Not имеет следующий синтаксис:

Not Операнд

Операнд, имеющий логический тип, – это отношение, переменная или функция

логического типа или результат логической операции. Результат логического отрицания

имеет значение противоположное значению ее операнда, что показывает приведенная

ниже таблица:

Значение операнда Значение операции Not Операнд
True False
False True

Операция And имеет два операнда: Операнд 1 And Операнд 2

Результат операции And определяет таблица:

Значение операнда 1 Значение операнда 2 Значение операции Операнд 1 And Операнд 2
True True True
True False False
False True False
False False False

!Операция And имеет значение True только тогда, когда оба операнда имеют значение

True.

Пример. Неравенство a ≤ x ≤ b следует записать:

a <= x And x <= b

Операция Or также имеет два операнда: Операнд 1 Or Операнд 2

Результат операции Or даны в таблице:

Значение операнда 1 Значение операнда 2 Значение операции Операнд 1 OR Операнд 2
True True False
True False True
False True True
False False False

! Операция Or имеет значение True, если хотя бы один операнд (и даже оба вместе) имеют

значение True.

Пример. Условие х не принадлежит отрезку [a, b] следует записать

x < a Or x > b или Not(a <= x And x <= b).

Xor (логическое исключительное сложение)

Результат операции Xor дан в таблице:

Значение операнда 1 Значение операнда 2 Значение операции Операнд 1 XOR Операнд 2
True True False
True False True
False True True
False False False

! Операция Xor имеет значение True, если хотя бы один операнд (но не оба вместе) имеют

значение True.

В VB.NET определены также логические операции: AndAlso и OrElse. Операция

AndAlso очень похожа на операцию And. Она также выполняет логическое умножение

для двух логических операндов (Boolean). Основным различием между AndAlso и And

является то, что AndAlso допускает сокращенное, неполное вычисление операндов. Если

для первого операнда в AndAlso вычисляется значение False, второй операнд не

вычисляется и возвращается значение False операции AndAlso. Аналогично операция

OrElse очень похожа на операцию Or. Она выполняет сокращенное логическое

сложение двух логических операндов. Если первый операнд в выражении OrElse равен

True, второй операнд не вычисляется и возвращается True для операции OrElse.

8)Приоритет операций.(неполный)

Таблица приоритетов:

Приоритет Операция Приоритет Операция
Вызов функции, скобки. \
^ MOD
- +,-
*,/    

Наши рекомендации