Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 6(VBA).doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

Простейшие конструкции и операторы

Используемые символы. В языке Visual Basic при создании программ могут использоваться следующие символы:

• прописные и строчные буквы латинского и русского ал­фавитов;

427

• цифры от 0 до 9;

• знаки: . (точка), , (запятая), ; (точка с запятой), ' (апостроф), " (кавычки), ( ) (круглые скобки);

• символ пробела;

• знаки арифметических операций: + (плюс), - (минус), * (умножение), / (деление), ^ (возведение в степень);

• знаки сравнения: < (меньше), > (больше), = (равно), <= (не больше, используется вместо знака ), >= (не меньше, ис­пользуется вместо знака ), <> (не равно, используется вместо знака  );

• знаки: @ (коммерческое "эт"), # (диез), $ (знак доллара), % (процент), & (амперсанд, или коммерческое "и"), \ (косая черта слева направо), _(знак подчеркивания), ! (восклицательный знак), ? (вопросительный знак).

Представление чисел. Числа в Visual Basic представляют со­бой последовательность цифр со знаком + или - (знак + обычно не употребляется), например: +7, -18, 32. Если в числе имеется дробная часть (т. е. десятичная дробь), то она отделяется от целой части точкой. При этом если целая часть равна нулю, то ее можно опустить, например: 0.5, -5. 68, -. 12. Описанная форма запи­си чисел носит название основной.

Кроме основной, возможна также запись чисел в экспоненци­альной форме (в форме с порядком). Например, десятичное число 0,0095 или его эквивалент 9,5 • 10-3 на языке Visual Basic может быть записано в следующем вице: 9. 5Е-4. Аналогичным обра­зом число 52000000 можно записать так: 52Е+6 или 52Е6. Ла­тинская буква Е и находящееся за ней число в данной форме за­писи называется порядком, перед которым обязательно должно быть записано число в основной форме. Вместо буквы Е при ука­зании порядка можно также использовать букву D, однако после компиляции этот символ будет автоматически исправлен на Е.

Арифметические выражения. При использовании в програм­ме каких-либо арифметических вычислений, их представление на языке Visual Basic схоже с математическим. Выражения могут содержать числа, переменные, функции, которые соединены между собой знаками арифметических действий (см. табл. 6.11).

428

Кроме обычных арифметических действий - сложения (+), вычитания (-), умножения (*), деления (/) и возведения в сте­пень (^),- в языке Visual Basic можно также выполнять целочис­ленное деление (\) и определять остаток от деления при помощи оператора Mod. Например:

Листинг 6.1. Применение арифметических операторов.

Dim m, n, x m = 5 n = 2

x = m / n ' Результат; x = 2,5 x = m \ n ' Результат: х = 2 x = m Mod n ' Результат; x = 1

При наличии в выражении нескольких арифметических опера­ций порядок их выполнения определяется правилами приоритета:

1. возведение в степень (^)

2. умножение и деление - обычное и целочисленное (*, /, \)

3. остаток от деления (оператор Mod)

4. сложение и вычитание (+, -)

Операции с одинаковым приоритетом выполняются в соот­ветствии с порядком их записи в операторе слева направо. Если в выражении какие-либо операции заключены в скобки, то независимо от приоритета они выполняются в первую очередь.

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

429

складываются два числа: целое и вещественное. Результатом та­кого сложения будет величина вещественного типа, поэтому осо­бое внимание следует обращать на тип той переменной, которой он будет присвоен. Если в этом случае типы переменной и при­сваиваемого ей результата арифметического выражения не будут совпадать, например, переменная будет типа Integer, а значе­ние выражения - типа Single или Double, то после выполне­ния данного оператора значение переменной будет получено пу­тем автоматического округления результата.

В языке Visual Basic предусмотрена возможность преобразо­вания переменных из одного типа в другой при помощи специ­альных функций (см. табл. 6.9).

Однако при этом следует обращать внимание на значение, которое содержит переменная, - необходимо, чтобы оно соот­ветствовало тому типу, в который переменная будет преобра­зована. В частности любое числовое значение можно преобра­зовать в строку, однако обратное действие возможно только в том случае, если содержимым строки является число в основ­ной или экспоненциальной форме. Например:

intNunber =15

strNumber = CStr(intNunber) ' Результат; "15"

strNumber = "2,5E1"

intNunber = Cint(strNunber) ' Результат; 25

Особое внимание следует обратить на то, что в строке, преоб­разуемой в число и содержащей как целую, так и дробную части, использование в качестве разделителя точки или запятой зависит от настроек в панели управления - раздел Язык и стандарты (см. рис. 6.17).

Если для разделения целой и дробной части установлена точ­ка, то в преобразуемой строке можно использовать как точку, так и запятую. С другой стороны, если установлена запятая, то в строке для преобразования в число необходимо использовать только запятую. Применение точки в этом случае приведет на стадии компиляции к ошибке несовпадения типов. Например:

strNunber = "2.5E1" intNunber = Cint(strNunber) _ ' Результат; ОШИБКА

430

Данная ошибка также появляется тогда, когда значение пре­образуемой переменной не соответствует задаваемому типу. Например:

strNumber = "х1" intNumber = Cint(strNuinber) ' Результат: ОШИБКА

Математические функции. В языке Visual Basic для решения различных математических задач существуют встроенные функ­ции, зависящие от одного аргумента, которые можно использо­вать непосредственно при вычислении каких-либо выражений (см. табл. 6.12).

431

Аргумент во всех тригонометрических функциях задается в радианах, а не в градусах. При необходимости перевода значе­ния, которое задано в градусах, в радианы, следует использо­вать формулу:

радианы = градусы •Пи /180

при вычислении арктангенса необходимо, чтобы аргумент на­ходился в пределах интервала: (-пи/2; пи/2).

432

При использовании стандартного датчика случайных чисел генерирует число в интервале [0; I], при этом аргумент х в функции Rnd можно опустить.

Логические операторы. Помимо математических, в языке Visual Basic можно также вычислять значения логических выражений, которые будут иметь тип Boolean и могут принять одно из двух значений: True (Истина) или False (Ложь).

Прежде всего, переменным логического типа можно присваи­вать результат любого выражения, значение которого принадле­жит этому типу. Например:

Листинг 6.2. Работа с логическими значениями

Dim х, у, blnА

х = 5

у = 2

blnА = х > у ' Результат: True

blnА = х < у ' Результат: False

Также можно использовать реализованные в данном языке ло­гические функции одной и двух переменных, которые возвраща­ют True или False в зависимости от значений параметров (см. табл. 6.13).

В качестве функции одной переменной в Visual Basic высту­пает логическое отрицание (оператор Not), результатом выпол­нения которого является значение True, если параметр был ра­вен False, и наоборот, результат равен False, если параметр содержал значение True.

433

Описание логических операторов, реализующих данные функ­ции, выглядит следующим образом:

And. Действие "конъюнкция" (логическое "и").

Or. Действие "дизъюнкция" (логическое "или").

Хоr. Действие "двоичное сложение".

Imp. Действие "импликация".

Eqv. Действие "эквивалентность".

Ниже приведен пример применения всех описанных выше операторов.

Листинг 6.3. Иллюстрация использования логических функций

Dim х, у, z, blnА х = 1

у = 2

z = 3

'Оператор And

blnА = х > у And у > z ' Результат: False 'Оператор Not

blnА = Not(x < у) ' Результат: False 'Оператор Оr

blnА =x<y0ry>z ' Результат: True 'Оператор Хоr

blnА = х < у Хог у < z ' Результат: False 'Оператор Imp

blnА = х > у Imp у > z ' Результат: True 'Оператор Eqv

blnА = х < у Eqv у < z ' Результат: True