- •Содержание
- •Введение
- •1 Алгоритм и его свойства
- •2 Основные понятия VBA. Линейные алгоритмы
- •2.1 Элементы языка VBA
- •2.2 Типы данных VBA
- •2.3 Константы VBA
- •2.4 Переменные VBA
- •2.5 Выражения в VBA
- •2.6 Встроенные функции VBA
- •2.7 Оператор присваивания
- •3 Разветвляющиеся алгоритмы
- •3.1 Оператор IF и его формы записи
- •3.2 Типовые задачи разветвляющихся алгоритмов
- •4 Циклические алгоритмы
- •4.1 Оператор цикла For
- •Оператор цикла For Each
- •4.2 Оператор цикла Do
- •4.3 Вложенные циклы
- •5 Обработка массивов данных
- •5.1 Ввод-вывод массивов
- •Расположение данных в файле "dat.txt"
- •Расположение данных в файле "res.txt"
- •5.2 Программирование обработки одномерных массивов
- •5.3 Программирование обработки двумерных массивов
- •6.1 Лабораторная работа №1
- •6.2 Задание к расчетно-графической работе №1
- •6.3 Лабораторная работа №2
- •Обработка массивов данных на VBA
- •6.4 Задание к расчетно-графической работе №2
- •ЛИТЕРАТУРА
- •Окно проекта
- •Главное меню
- •Интеллектуальные возможности редактора кода
- •Операции сравнения
- •Конкатенация строк
- •Логические операторы VBA
- •Приоритеты выполнения операций при вычислении сложных выражений
- •Операторы пересчета
Логические операторы VBA
Логические операторы VBA используются для объединения результатов отдельных логических выражений, чтобы создать сложные критерии для принятия решений в процедуре (таблица Б.3).
Таблица Б.3 – Логические операторы VBA
Логический |
Синтаксис |
Имя/Описание |
||
оператор |
|
|
|
|
|
|
|
|
|
And |
El And E2 |
Конъюнкция. True, если оба Е1 и Е2 |
||
|
|
имеют значение True, иначе – False |
||
|
|
|
||
Or |
El Or E2 |
Дизъюнкция. True, если одно выра- |
||
|
|
жение или оба (Е1 и Е2) являются |
||
|
|
равными True; иначе – False |
||
|
|
|
|
|
Not |
Not El |
Отрицание. True, если Е1 имеет зна- |
||
|
|
чение False; False, если El является |
||
|
|
равным True |
||
|
|
|
||
Xor |
El Xor E2 |
Исключение. True, если Е1 и Е2 |
||
|
|
имеют разные значения; иначе – |
||
|
|
False |
||
|
|
|
||
Eqv |
El Eqv E2 |
Эквивалентность. True,если Е1 име- |
||
|
|
ет то же самое значение, что и Е2; |
||
|
|
иначе – False |
||
|
|
|
||
Imp |
El Imp E2 |
Импликация. False, когда Е1 является |
||
|
|
равным True и Е2 равно False; иначе |
||
|
|
True. |
||
|
|
|
|
|
Операнды Е в этой таблице представляет собой любое допустимое выражение с результатом типа Boolean, такое как операция сравнения.
120
Приоритеты выполнения операций при вычислении сложных выражений
Сложное (составное) выражение (complex expression) – это любое выражение, образованное из двух или более выражений. В таблице Б.4 собраны операции по группам в порядке убывания приоритета, то есть чем ниже расположена группа, тем позже выполняются указанные в ней операции. Для изменения этого порядка применяются круглые скобки. Операции одного уровня выполняются слева направо в том порядке, в котором они записаны в выражении.
Таблица Б.4 – Приоритеты операций VBA
Оператор |
Комментарии |
или знак |
|
^ |
Возведение в степень, наивысший приоритет |
|
|
– |
Унарный минус - изменение знака числа |
|
|
*, / |
Умножение и деление имеют равные приоритеты; они вы- |
|
числяются по мере появления в выражении слева направо |
|
|
\ |
Деление нацело |
|
|
Mod |
Остаток от деления нацело |
|
|
+, – |
Сложение и вычитание имеют равный приоритет; они вы- |
|
числяются по мере появления в выражении слева направо |
|
|
& |
Всякая конкатенация строк выполняется после любых |
|
арифметических операций в выражении и перед любыми |
|
операциями сравнения или логическими операциями |
|
|
<, <=, >, >=, |
Все операторы сравнения имеют равные приоритеты и вы- |
=, <>, Is |
числяются по мере появления в выражении слева направо. |
|
Используйте круглые скобки для группирования операто- |
|
ров сравнения в выражениях |
|
|
Логические |
Not And Or Xor Eqv Imp – имеют низший приоритет |
операторы |
|
|
|
121
Приложение В Математические функции VBA
VBA предоставляет стандартный набор математических функций приведенный в таблице В.1.
Таблица B.1 – Математические функции VBA
Функции |
Возвращает / действие |
|
|
|
|
Abs(N) |
Возвращает абсолютное значение N |
|
|
|
|
Cos(N) |
Косинус угла N, где N – это угол, измеренный в ра- |
|
дианах |
||
|
||
Sin(N) |
Возвращает синус угла; N – это угол, измеренный в |
|
радианах |
||
|
||
Tan(N) |
Возвращает тангенс угла; N – угол в радианах |
|
|
|
|
Atn(N) |
Возвращает арктангенс N как угол в радианах |
|
|
|
|
Exp(N) |
Возвращает константу е, возведенную в степень N (е – |
|
это основание натуральных логарифмов и она (при- |
||
|
близительно) равна 2,718282 |
|
|
Возвращает целую часть N. Fix не округляет число, а |
|
Fix(N) |
отбрасывает любую дробную часть. Если N является |
|
отрицательным, Fix возвращает ближайшее отрица- |
||
|
||
|
тельное целое большее, чем или равное N |
|
|
Возвращает целую часть N. Int не округляет число, а |
|
Int(N) |
отбрасывает любую дробную часть. Если N является |
|
отрицательным, Int возвращает ближайшее отрица- |
||
|
||
|
тельное целое меньшее, чем или равное N |
|
Log(N) |
Возвращает натуральный логарифм N |
|
|
|
|
|
Возвращает случайное число; аргумент является не- |
|
Rnd(N) |
обязательным. Используйте функцию Rnd только |
|
после инициализации VBA-генератора случайных чи- |
||
|
||
|
сел оператором Randomize |
|
Sgn(N) |
Возвращает знак числа: –1, если N – отрицательное; |
|
+1, если N –положительное; 0, если N равно 0 |
||
|
||
Sqr(N) |
Возвращает корень квадратный из N. VBA отображает |
|
ошибку исполнения, если N – отрицательное |
||
|
122
Операнд N означает любое численное выражение? допустимое в
VBA.
Аргумент тригонометрических функции (синуса, косинуса и тангенса) задается в радианах, а не в градусах. Обратная тригонометрическая функция A t n ( x ) возвращает в программу значение угла в радианах от -π/2 до π/2, тангенс которого равен значению арифметического выражения х.
Связь между радианной и градусной мерами угла выражается через иррациональное число π ≈ 3,14159265358979323846.
Радианы= |
Градусы×π |
Градусы= |
Радианы×180 |
|
180 |
|
π |
Для перевода градусов в радианы можно также использовать встроенную функцию Excel - Application.Radians(x), где x – угол, за-
данный в радианах.
Для получения числового значения константы π с точностью 15 цифр мантиссы можно использовать встроенную функцию Excel Application.Pi(), либо функцию VBA арктангенс
Pi= Application.Pi() либо Pi=4*Atn(1)
Примеры записи тригонометрических функций
Алгебраическая |
Запись на VBA |
запись |
|
|
Sin(15*3.141593/180) |
sin 15° |
|
Sin( Application.Radians(15)) |
|
|
|
|
Sin(15* Application.Pi()/180) |
tg2x3 |
Tan(X^3)^2 |
Cos2(х + 0,2)3 |
Cos( (X + 0.2)^3 )^2 |
123