ЛР ОПИА. ОПиА_ЛР1_АгеевДВ_Збист221. Отчет по лабораторной работе 1 По дисциплине Основы программирования и алгоритмизации наименование на тему Основы работы с редактором vba.
Скачать 3.69 Mb.
|
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования Воронежский государственный технический университет Факультет информационных технологий и компьютерной безопасности Кафедра графики, конструирования и информационных технологий в промышленном дизайне ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 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 – вся практика по трем лабораторным работам |