Файл: Отчет по лабораторной работе 1 По дисциплине Основы программирования и алгоритмизации наименование на тему Основы работы с редактором vba..pdf
Добавлен: 03.05.2024
Просмотров: 9
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
Воронежский государственный технический университет
Факультет информационных технологий и компьютерной безопасности
Кафедра графики, конструирования и информационных технологий
в промышленном дизайне
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 1
По дисциплине: Основы программирования и алгоритмизации наименование на тему «Основы работы с редактором VBA.»
Автор работы:
Д. В. Агеев группа збист-221 подпись, дата инициалы, фамилия обозначение
Профиль подготовки: 09.03.02 Информационные системы и технологии профиль: информационные системы и технологии номер, наименование
Руководитель: асс. О.А. Рябинина п
одпись, дата должность, инициалы, фамилия
Воронеж
2023
2
Цель работы: изучить логические операции и базовые операторы, реализующие алгоритм ветвления.
Выполнение работы
Пример на использование условного оператора.
Написать программу, определяющую - принадлежит ли точка с заданными координатами (x,y) выделенной области на графике (включая границы области) (рисунок 1)
Рисунок 1 – область выделения.
Данная область ограничивается двумя графиками функций.
(четверть окружности) и y = x - 6.
3
4
Рисунок 4 – текст макроса
Далее макрос был запущен из окна Excel через диалоговое окно «Макросы»
(рисунок 5).
Рисунок 5 - диалоговое окно «макросы»
Далее был выполнен макрос с помощью кнопки Run, введено слово «лол» и получен результат (рисунок 6):
5
Рисунок 6 – результат выполнения макроса
Далее согласно методическому материалы был создан новый макрос с названием «пример», его код ниже (рисунок 7):
Sub пример()
Dim x1 As Integer, x2 As Integer, x As Integer x1 = InputBox("введите первое число") x2 = InputBox("введите второе число") x = x1 + x2
MsgBox
"сумма введенных чисел равна:" & x
End Sub
6
Рисунок 7 – макрос пример
Результат выполнения макроса (рисунок 8) с введенными числами 1 и 2 :
Рисунок 8 – результат выполнения макроса пример.
7
1. Сохранение файла, содержащего макрос.
Для того, чтобы сохранить файл содержащий макрос я воспользовался функцией файл-сохранить как- обзор – книга Excel с поддержкой макросов (рисунок
9).
Рисунок 9 – процесс сохранения файла с поддержкой макросов
Результат сохранения книги с макросом (рисунок 10):
8
Рисунок 10 – результат сохранения книги с поддержкой макросов
2. Пошаговое выполнение программы.
При выполнении отладки программы, иногда необходимо последовательное выполнение программы, с просмотром промежуточных результатов. Во время запуска файла с макросом система безопасности эксель выдала ошибку о необходимости запуска макросов. Запустил нажатием на соответствующую кнопку.
Открыл макрос «пример», навел на вкладку Debug, нажал debug / add watch. В поле expression ввел x1 (рисунок 11).
9
Рисунок 11 – процесс отладки и просмотра промежуточных результатов.
Далее сделал аналогичные действия для x1, x. Снизу отобразились переменные (рисунок 12).
Рисунок 12 – процесс отображения переменных и выполнения работы
10
1. ввод/вывод с помощью ячеек электронной таблицы.
В редакторе VBA был набран новый текст макроса с названием «лестница», того, чтобы показать, как обращаться к листам Microsoft Excel. Формат обращений идет через Cells (1,2), где 1 -номер строки, в котором находится ячейка, 2 – номер столбца, в котором расположения ячейка. Текст макроса (рисунок 13):
Sub лесенка()
Worksheets
("заполнение с помощью макроса").Cells(1, 4) = "хххххх"
Worksheets
("заполнение с помощью макроса").Cells(2, 5) = "хххххх"
Worksheets
("заполнение с помощью макроса").Cells(3, 6) = "хххххх"
Worksheets
("заполнение с помощью макроса").Cells(4, 7) = "хххххх"
End Sub
Рисунок 13 - Текст введённого макроса
Результат выполнения макроса изображен на рисунке 13.
11
Рисунок 14 – результат выполнения задания
2. Имена переменных
Имена переменных необходимо описывать для простоты работы и вывода информации. Пример, описания нескольких переменных:
Dim <имя переменной 1> As <тип переменной1>, <имя переменной 2>
As <тип переменной 2>,...,<имя переменной n> As <тип переменной n>
Есть несколько правил при объявлении переменной:
имя переменной может начинаться только с буквы;
имя переменной должно быть уникальным;
длинна переменной не должна быть более 255 символов;
Имя переменной не должно совпадать ни с одним из ключевых слов языка.
В оставшейся части имени можно использовать любую комбинацию букв, цифр и символа подчеркивания. В именах переменных нельзя использовать пробелы, точки и другие знаки препинания.
3. Типы переменных
Типы переменных приведены в рисунке 15. Существует так же тип переменной –
Variant, который допускает использование любого типа данных доступных VBA.
12
13
Рисунок 15 - допустимые типы данных.
14
4. Объявление переменных
Компилятор Visual Basic не требует явного объявления переменных перед их использованием. Если используемая в программе переменная нигде ранее не описана, считается, что она имеет стандартный тип Variant.
3. Оператор присваивания
Прежде чем использовать переменную в программе, ей необходимо присвоить значение.
«переменная» = «выражение»
4. Математические операторы
Математические операторы позволяют выполнять в программе действия над числами. Математические операторы изображены на рисунке 16.
Рисунок 16 – математические операторы
5. Создание подпрограмм
Текст модуля VBA состоит из подпрограмм. Существуют два вида подпрограмм: процедура и функция. Структура подпрограммы включает в себя заголовок, описание переменных и операторы.
7.1 Основы создания процедур
Каждой процедуре соответствует макрос. Вывод данных в простейшем случае осуществляется либо в ячейки Ехсеl либо в окно сообщения МsgBox, соответственно ввод – либо из ячеек, либо с использованием диалогового окна
InputBox. Синтаксис макроса выглядит следующим образом:
Sub «имя макроса» («параметры») операторы
End Sub
15
По заданию в редакторе VBA набрал текст макроса (рисунок 17):
Sub Formula ()
Dim x As Double, A As Double, y As Double x = InputBox("
введите x") y = InputBox("
введите y")
A = x - y
MsgBox "РАЗНОСТЬ ВВЕДЕННЫХ ЧИСЕЛ:" & A
A = x * y
MsgBox "Произведение ВВЕДЕННЫХ ЧИСЕЛ:" & A
A = x / y
MsgBox "Отношение ВВЕДЕННЫХ ЧИСЕЛ:" & A
A = x \ y
MsgBox "Целая часть от деления ВВЕДЕННЫХ ЧИСЕЛ:" & A
A = x Mod y
MsgBox "Остаток часть от деления ВВЕДЕННЫХ ЧИСЕЛ:" & A
End Sub
Рисунок 17 – набранный текст макроса.
16
Процесс выполнения действий в макросе изображен на рисунках 18, 19, 20,
21,22, 23, 24.
Рисунок 18 – процесс ввода аргумента Х
Рисунок 19 – процесс ввода аргумента Y.
17
Рисунок 20 – разность введеных чисел
Рисунок 21 – произведение введеных чисел
18
Рисунок 23 - отношение введеных чисел
Рисунок 24 - целая часть от введеных чисел
19
Вывод: …
20
Рисунок 25 – остаток от деления введённых чисел
5.2 Основы создания функций
Синтаксис функции выглядит следующим образом:
Function
«имя функции» («параметры») [As «тип»] операторы
End Function
Функции, как и переменные, имеют тип, так же, если тип не задан, то присваивается VARIANT.
Задание: набрать код в VBA и использовать как функцию ниже и использовать на таблице ниже.
Код (введен на рисунке 26):
Function
Куб (x As Double) As Double
Куб = x ^3
End Function
21
Рисунок 26 – код функции куб
Первым делом, я зашел и изобразил таблицу из методического материала.
Дальше, я добавил функцию через меню вызова функции. После выбрал пользовательские. Результаты выполнения формулы, вызванной пользователем, находятся ниже (рисунок 27):
22
Рисунок 27 – результат выполнения функции «куб»
6. Реализация линейного алгоритма.
Алгоритм – это последовательность понятных исполнителю команд, однозначно определяющая процесс решения задачи, приводящий к результату за конечное число шагов. Самые простые – линейные алгоритмы, в которых все операции выполняются последовательно.
Задача:
Вычислить значение арифметического выражения (рисунок 26):
Рисунок 26 – задача.
Можно изобразить решение с помощью блок-схемы, как указано в методическом материале (рисунок 28):
23
Рисунок 28 – решение с помощью блок-схемы
8.1 Решение задачи с использованием макроса:
Текст макроса изображен ниже (рисунок 27):
Sub Formula1()
Dim x As Double, a As Double, B As Double, C As Double, Y As Double x = InputBox("Введите х=") a = InputBox("Введите а=")
B = x ^ 2 + a ^ 2
C = x * a
Y = (B + Sin(C)) / (C + Cos(C))
MsgBox "Результат вычислений Y=" & Y
End Sub
24
Рисунок 28 – текст введённого макроса.
Результат вычисления макроса при Х=1, Y=2 (рисунок 29):
Рисунок 29 – результат вычисления макроса
25
8.2 Решение задачи с использованием функции:
Текст функции набран как на картинке (рисунок 30):
Function y(x As Double, a As Double) As Double
B = x ^ 2 + a ^ 2
C = x * a y = (B + Sin(C)) / (C + Cos(C))
End Function
Рисунок 30 – решение задачи с помощью функции
Следующим этапом создал таблицу, по примеру из задания (рисунок 31):
26
Рисунок 31 – таблица исходных данных для решения задачи
Результат выполнения задания (рисунок 32):
Рисунок 32 – результат использования функции
27
Вывод: укрепил навыки владения системой Microsoft Excel. Познакомился с языком программирования VBA, получил навык выполнения простейшей программы, сохранения и закрытия файла, содержащего макросы. Научился вводить данные в рабочие листы Excel с помощью макросов, так же узнал об объявлениях переменных и для чего это необходимо. Узнал типы переменных.
Научился решать простейшие задачи.
28
Приложение №1 vba_лр1-2-3.xlsm – вся практика по трем лабораторным работам