
- •Кафедра КиВт методические указания
- •1.1 Цель работы: Изучение методов создания функций пользователя в excel с использованием Visual Basic for Application (vba).
- •1.2 Теоретические сведения
- •1.3 Задание к работе
- •1.4 Методика выполнения задания
- •Содержание отчета
- •1.6 Задания для самостоятельной работы
- •2. Лабораторная работа № 2. Создание программ на vba с помощью макрорекордера
- •Теоретические сведения
- •Подготовка к записи макроса
- •Запись макроса, остановка записи.
- •Анализ процедуры.
- •Задание к работе.
- •Содержание отчета.
- •3. Лабораторная работа № 3. Интегрированная среда разработки (vba)
- •3.2 Краткие теоретические сведения
- •3.2.1 Общий вид интегрированной среды разработки на Visual Basic for Applications.
- •3.2.2 Панель элементов
- •3.2.3 Окно Project Explorer.
- •3.2.4 Окно Свойства (Properties)
- •3.2.5 Окно Просмотр объектов (Object Browser)
- •4. Лабораторная работа № 4. Программирование алгоритмов линейной структуры
- •4.2 Краткие теоретические сведения
- •4.2.1 Оператор присвоения
- •4.2.2 Функции преобразования форматов
- •4.2.3 Встроенные диалоговые окна
- •4.3 Задание к работе
- •4.4 Методика выполнения задания
- •4.5 Пример выполнения задания
- •Содержание отчета.
- •5. Лабораторная работа № 5. Программирование алгоритмов разветвляющейся структуры
- •5.2 Краткие теоретические сведения
- •5.3 Методика выполнения задания
- •5.4 Пример выполнения задания
- •Содержание отчета.
- •6. Лабораторная работа № 6. Программирование алгоритмов циклической структуры
- •6.2 Теоретические сведения.
- •Задание к работе.
- •Методика выполнения задания
- •Пример выполнения задания
- •Содержание отчета.
- •7. Лабораторная работа № 7. Обработка одномерных массивов
- •7.2 Теоретические сведения. Массивы
- •Динамические массивы
- •7.3 Задание к работе
- •7.4 Методика выполнения задания
- •7.5 Пример выполнения задания
- •7.6 Содержание отчета.
- •8. Лабораторная работа № 8. Обработка двумерных массивов (матриц)
- •8.2 Теоретические сведения.
- •8.3 Задание к работе.
- •8.4 Методика выполнения задания
- •8.5 Пример выполнения задания
- •8.6 Содержание отчета.
- •9. Лабораторная работа № 9. Программирование алгоритмов циклической структуры c использованием оператора цикла do
- •9.1 Цель работы: изучение методов алгоритмизации и программирования алгоритмов циклической структуры c использованием оператора цикла do
- •9.2 Теоретические сведения.
- •9.3 Задание к работе.
- •9.4 Методика выполнения задания
- •9.5 Пример выполнения задания
- •9.6 Содержание отчета.
4. Лабораторная работа № 4. Программирование алгоритмов линейной структуры
4.1 Цель работы: изучение методов алгоритмизации и программирования алгоритмов линейной структуры.
4.2 Краткие теоретические сведения
При программировании линейной структуры используется оператор присваивания и встроенные диалоговые окна.
4.2.1 Оператор присвоения
Оператор присвоения присваивает значение выражения переменной или константе. Оператор присвоения всегда включает знак равенства(=).
Синтаксис:
[Let] Переменная = выражение
Инструкция Let не обязательна и чаще всего опускается. Оператор присвоения предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой указано в левой части. В результате, например, действие следующей пары операторов
х==2
х==х+2
Переменной х будет присвоено 4.
Имена переменных должны отражать суть обозначаемого объекта так, чтобы делать программу легко читаемой. В VBA имеются следующие ограничения на имена:
Длина имени не должна превышать 255 символов.
Имя на может содержать точек, пробелов и следующих символов: %, &,!, #, @, $.
Имя может содержать любую комбинацию, цифр и символов, начинающуюся с буквы.
Имена должны быть уникальны внутри области, в которой они определены.
Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур.
Хотя регистр (верхний или нижний) в имени не имеет значения, умелое использование его может существенно облегчить понимание содержательной стороны переменной. Например, вместо плоских и невыразительных имен
процентнаяставка
х_начзнач
предпочтительнее использовать следующие имена, которые легче воспринимаются, благодаря выделению нескольких символов, входящих в них, разумным использованием верхнего регистра
ПроцентнаяСтавка
х_НачЗнач
Выражение состоит из элементов выражения (операндов) разделенных знаками операций и скобками. В программах на VBA можно использовать стандартный набор операций над данными. Имеются три основных типа операций:
Математические, выполняются над числами, и их результатом являются числа
Отношения, применяются не только к числам, и их результатом являются логические значения, например х>у
Логические, используются в логических выражениях и их результатом являются логические значения, например Not x And y
Приведем операции VBA указанных и дополнительных категорий.
Таблица 4.1
Математические операции. |
|
[Операнд1] + [Операнд2] |
Сложение |
[Операнд1] - [Операнд2] |
Вычитание |
- [Операнд] |
Перемена знака |
[Операнд1] * [Операнд2] |
Умножение |
[Операнд1] / [Операнд2] |
Деление |
[Операнд1] \ [Операнд2] |
Целочисленное деление |
[Операнд1] Mod [Операнд2] |
Остаток от деления по модулю |
[Операнд1] ^ [Операнд2] |
Возведение в степень |
|
|
Операции отношения. |
|
[Операнд1] < [Операнд2] |
Меньше |
[Операнд1] > [Операнд2] |
Больше |
[Операнд1] <= [Операнд2] |
Меньше или равно |
[Операнд1] >= [Операнд2] |
Больше или равно |
[Операнд1] <> [Операнд2] |
Не равно |
[Операнд1] = [Операнд2] |
Равно |
[Операнд1] Is [Операнд2] |
Сравнение двух операндов, содержащих ссылки на объекты |
[Операнд1] Like [Операнд2] |
Сравнение двух строковых выражений |
|
|
Логические операции. |
|
[Операнд1] And [Операнд2] |
Логическое умножение |
[Операнд1] Or [Операнд2] |
Логическое сложение |
[Операнд1] Xor [Операнд2] |
Исключающее (или) |
[Операнд1] Not [Операнд2] |
Логическое отрицание |
[Операнд1] Imp [Операнд2] |
Логическая импликация (в настоящее время почти не используется) |
[Операнд1] Equ [Операнд2] |
Логическая эквивалентность (в настоящее время почти не используется) |
|
|
Другие операции. |
|
[Строка1] & [Строка2] |
Сложение строк. Для сложения строк допустимо использование операции [Строка1] + [Строка2], но предпочтительнее, во избежание путаницы, применить операцию со знаком & |
VBA выполняет операции в соответствии с их приоритетами, что обеспечивает однозначность в трактовании значений выражений. Приведем приоритеты выполнения операций.
Приоритет Операции
1 Вызов функции и скобки
2 ^
3 - (смена знака)
4 *, /
5 \
6 Mod
7 +, -
8 >, <, >=, <=, <>, =
9 Not
10 And
11 Or
12 Xor
13 Equ
14 Imp
Операндами в выражении могут быть: переменные, константы, функции.
В VBA имеются большой набор встроенных функций и процедур, использование которых существенно упрощает программирование. Эти функции можно разделить на следующие основные категории:
- Математические функции
- Функции проверки типов
- Функции преобразования форматов
В таблице 4.2 перечислены математические функции, используемые в VBA
Таблица 4.2 Математические функции
Функции |
Возвращаемое значение |
Abs |
Модуль (абсолютная величина) числа |
Atn |
Арктангенс |
Cos |
Косинус |
Exp |
Экспонента, т.е. результат возведения основания натурального логарифма в указанную степень (ех) |
Log |
Натуральный логарифм (основание е=2.71828…) |
Rnd |
Случайное число из интервала [0.1) Если число меньше нуля, то Rnd возвращает каждый раз одно и тоже число, используя аргумент в качестве опорного числа; если число больше нуля или аргумент опущен, то – следующее случайное число в последовательности; если число равняется нулю, то случайное число, возвращенное при предыдущем вызове этой функции. Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента |
Sgn |
Знак числа |
Sin |
Синус |
Sqr |
Квадратный корень из числа |
Tan |
Тангенс |
Fix и Int |
Обе функции, Int и Fix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix - ближайшее отрицательное целое число, большее либо равное указанному |
Функции |
Возвращаемое значение |
Abs |
Модуль (абсолютная величина) числа |
Atn |
Арктангенс |
Cos |
Косинус |
Exp |
Экспонента, т.е. результат возведения основания натурального логарифма в указанную степень (ех) |
Log |
Натуральный логарифм (основание е=2.71828…) |
Rnd |
Случайное число из интервала [0.1) Если число меньше нуля, то Rnd возвращает каждый раз одно и тоже число, используя аргумент в качестве опорного числа; если число больше нуля или аргумент опущен, то – следующее случайное число в последовательности; если число равняется нулю, то случайное число, возвращенное при предыдущем вызове этой функции. Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента |
Sgn |
Знак числа |
Sin |
Синус |
Sqr |
Квадратный корень из числа |
Tan |
Тангенс |
Fix и Int |
Обе функции, Int и Fix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix - ближайшее отрицательное целое число, большее либо равное указанному |
Обратите внимание на то, что список функций таблицы 4.2 несколько сокращен. Приведены только четыре встроенные тригонометрические функции, на самом же деле тригонометрических функций около 24, включая используемые гиперболические функции. В таблице 4.3 перечислены несколько стандартных формул, где использованы встроенные функции для вычисления недостающих. Эти формулы предназначены для положительных и отрицательных значений аргумента х. Некоторые из них, содержащие знак (+-), дают двойной результат. Используйте знак плюс (+) для вычисления первого значения и знак (-) для вычисления второго.
Таблица 4.3 Формулы общих математических функций, не вошедших в VBA
Функция |
Формула |
Секанс |
Sec (x) = 1/Cos (x) |
Косеканс |
Csc (x) = 1/Sin (x) |
Котангенс |
Ctg (x) = 1/Tan (x) |
Арксинус |
Arcsin (x) = Atn (x/Sqr (1-x^2)) |
Арккосинус |
Arccos (x) = 1.5708 – Atn (x/Sqr (1-x^2)) |
Арксеканс |
Arcsec (x) = Atn (Sqr (x^2 – 1) + Sgn (x) – 1)*1.5708 |
Арккосеканс |
Arccosec (x) = Atn (1/Sqr (x^2 – 1)) + + (Sgn (x) – 1)*1.5708 |
Арккотангенс |
Arcctg (x) = 1.5708 = Atn (x) |
Гиперболический синус |
Sh (x) = (Exp (x) - Exp (-x))/2 |
Гиперболический косинус |
Ch (x) = (Exp (x) +Exp (-x))/2 |
Гиперболический тангенс |
Th (x) = (Exp (x) - Exp (-x))/ (Exp (x) +Exp (-x)) |
Гиперболический секанс |
Sch (x) = 2/ (Exp (x) +Exp (-x)) |
Гиперболический косеканс |
Csch (x) = 2/ (Exp (x) -Exp (-x)) |
Гиперболический котангенс |
Cth (x) = (Exp (x) + Exp (-x))/ (Exp (x) -Exp (-x)) |
Ареасинус |
Arsh(x) = Log (x + Sqr (x^2 + 1)) |
Ареакосинус |
Arch(x) = Log (x ± Sqr (x^2 - 1)) |
Ареатангенс |
Arth (x) = Log ((1+ x)/(1 – x)) / 2 |
Ареасеканс |
Arsch(x) = Log ((1 ± Sqr (1 - x^2)) / x) |
Ареакосеканс |
Arcsch(x) = Log ((1 ± Sqr (1 + x^2)) / x) |
Ареакотангенс |
Arcth (x) = Log ((x+ 1)/(x – 1)) / 2 |
Логарифм по основанию n |
Log N (x) = Log (x) / Log (n) |
Число 1.5708 – это приближенное значение π/2.