Idea Transcript
МОСКОВСКИЙ АВТОМОБИЛЬНО-ДОРОЖНЫЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (МАДИ)
И.С. ШУВАЛОВА
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ VBA МЕТОДИЧЕСКИЕ УКАЗАНИЯ к практическим и лабораторным работам по дисциплине «Информатика»
МОСКОВСКИЙ АВТОМОМОБИЛЬНО-ДОРОЖНЫЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (МАДИ)
Кафедра «Автоматизированные системы управления» Утверждаю Зав. кафедрой профессор _____________ А.Б. Николаев «____» __________ 2017 г.
И.С. ШУВАЛОВА
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ VBA МЕТОДИЧЕСКИЕ УКАЗАНИЯ к практическим и лабораторным работам по дисциплине «Информатика»
МОСКВА МАДИ 2017
УДК 004.438 ББК 32.973.26-018.1 Ш952
Шувалова, И.С. Ш952 Программирование на языке VBA: методические указания к практическим и лабораторным работам по дисциплине «Информатика» / И.С. Шувалова. – М.: МАДИ, 2017. – 92 с.
Материал, изложенный в методических указаниях, позволяет приобрести практические навыки алгоритмизации и программирования на языке высокого уровня VBA, а также умение представлять информацию в требуемом формате в виде итогового текстового документа – отчёта. Лабораторный практикум имеет цель научить студентов применять полученные знания для комплексного решения прикладных вычислительных задач, создавать пользовательские приложения на языке VBA и реализовывать их в табличном процессоре Excel, а также оформлять по стандарту техническую документацию к ним. Тем самым прививаются навыки использования современных программных продуктов в профессиональной инженерной деятельности. Методические указания предназначены для студентов, обучающихся по направлениям подготовки бакалавров 13.03.03 – «Энергетическое машиностроение» (профиль подготовки «Двигатели внутреннего сгорания») и 20.03.01 – «Техносферная безопасность» (профиль подготовки «Защита окружающей среды») всех форм обучения, изучающих дисциплину «Информатика».
УДК 004.438 ББК 32.973.26-018.1
© МАДИ, 2017
3
ВВЕДЕНИЕ Методические указания разработаны по основной профессиональной образовательной программе в соответствии с требованиями федерального государственного образовательного стандарта по направлениям подготовки 13.03.03 – «Энергетическое машиностроение» и 20.03.01 – «Техносферная безопасность». Материал, изложенный в методических указаниях, позволяет приобрести студентам практические навыки алгоритмизации и программирования на языке высокого уровня, а также умение представлять информацию в требуемом формате в виде итогового текстового документа – отчёта. Это будет способствовать формированию у обучающихся следующих профессиональных компетенций и позволит достигнуть следующих результатов: • обладать способностью осуществлять поиск, хранение, обработку и анализ информации из различных источников и баз данных, преобразовывать её в требуемом формате с использованием информационных, компьютерных и сетевых технологий (ОПК-1); • знать методы решения вычислительных задач инженерной деятельности с помощью инструментальных средств информационных технологий; • знать технологию создания научно-технической документации; • уметь использовать изученные инструментальные средства информационных технологий для решения практических задач инженерной деятельности; • уметь использовать полученные знания по алгоритмизации для решения прикладных вычислительных задач; • владеть технологией решения типовых вычислительных задач, а также технологией подготовки научно-технической документации с помощью текстового процессора MS Word. Лабораторный практикум по дисциплине «Информатика» предназначен для обучения студентов практическим навыкам алгоритмизации и программирования на языке высокого уровня VBA; овладению персональным компьютером на пользовательском уровне и умению использовать соответствующие прикладные программные средства при решении поставленных профессиональных задач.
4
На всех лабораторных работах по дисциплине «Информатика» выдаются задания, направленные на формирование определенных профессиональных компетенций студентов. Каждый студент получает конкретное задание, имеющее одинаковые требования к выполнению, но разное по содержанию. Выполненный цикл лабораторных работ дает студенту практический опыт создания документов и работы с данными разного типа и позволяет самостоятельно вести исследовательскую и аналитическую деятельность при изучении дисциплин старших курсов и в профессиональной сфере. Весь цикл лабораторных работ делится на две части: • Часть 1. «Технологический практикум по созданию и оформлению отчётно-технической документации» (практические работы №1–№3). В ходе выполнения практических работ первой части студент получает основные знания и навыки по технологии подготовки и качественного оформления технической документации, которые он должен будет применить в дальнейшем при выполнении основной части лабораторных работ, подготавливая отчёт по сделанным заданиям в текстовом процессоре MS Word в соответствии с общим образцом оформления по стандарту [10]. • Часть 2. «Основы алгоритмизации и программирования на языке VBA. Создание пользовательских приложений» (лабораторные работы №1–№7). В ходе выполнения лабораторных работ второй части студент получает практические навыки создания блок-схем алгоритмов решения задач разного типа с их последующей реализацией на языке объектно-ориентированного программирования Visual Basic for Application (VBA), предназначенного для разработки приложений в среде Windows & Office, в частности, в табличном процессоре Excel. Выполняя задания второй части, студент развивает способности преобразования графического алгоритма в синтаксис языка программирования, способности работы с компилятором, корректировки ошибок и анализа полученных результатов и впоследствии использует полученные ранее практические навыки разработки схем алгоритмов решения задач разного типа: разветвляющей и циклической структур, а также
5
многовариантного выбора и принятия решения для составления пользовательских приложений на языке VBA в среде Windows & Office. Таким образом, студенты уже в конце 1-го года обучения пытаются решать конкретные профессиональные задачи и оформлять по стандарту техническую документацию к ним. Структура лабораторного практикума. Основная часть лабораторного практикума содержит 7 лабораторных работ общей тематики, варианты заданий по которым содержатся в прил. А. При составлении вариантов были использованы материалы из [1, 8], а также новые задания, разработанные автором. Лабораторные работы №1–№3 выполняются в 1-ом семестре, выполнение лабораторных работ №4– 7 переносится на 2-й семестр учебного года. Все лабораторные работы посвящены разработке пользовательских приложений на языке VBA и их реализации в табличном процессоре Excel. По результатам выполнения каждой из работ студент должен оформить отчёт в текстовом процессоре MS Word в соответствии с требованиями, предъявляемыми в дальнейшем к оформлению выпускной квалификационной работы бакалавра и другой аналогичной технической документации. В конце каждой работы приведены контрольные вопросы, на которые студент должен уметь отвечать на оценку «удовлетворительно» и выше. Таким образом, лабораторная работа считается успешно «защищенной», если студент подготовил и оформил в MS Word в соответствии с требованиями отчёт по работе и дал как минимум удовлетворительные ответы на ряд вопросов преподавателя. Поскольку отчёт должен быть оформлен в соответствии с требованиями, предъявляемыми к оформлению выпускной квалификационной работы бакалавра, в начале лабораторного практикума студент должен получить навыки грамотного оформления технической документации. В связи с этим прежде, чем приступать к основному комплексу лабораторных работ №1–№7, студенту необходимо выполнить несколько общих практических заданий по оформлению текстовой документации по следующей тематике: Тема 1. Создание простых текстовых документов. Тема 2. Технология создания многоуровневых списков и оглавления. Тема 3. Стили оформления текстовых документов и приёмы редактирования.
6
Полученные таким образом основные знания и навыки по технологии подготовки и качественного оформления технической документации студент должен будет применить при выполнении основной части практических работ по информатике, которая проводится в соответствии с индивидуальным вариантом заданий по алгоритмизации. Изученные технологические приёмы должны быть использованы при оформлении отчётов по разработанным и реализованным в табличном процессоре Excel пользовательским приложениям на языке VBA.
7
Глава 1. ТЕХНОЛОГИЧЕСКИЙ ПРАКТИКУМ ПО СОЗДАНИЮ И ОФОРМЛЕНИЮ ОТЧЁТНО-ТЕХНИЧЕСКОЙ ДОКУМЕНТАЦИИ 1.1. Общие требования к оформлению заданий по алгоритмизации Отчёт по заданиям следует формировать в текстовом процессоре MS Word, вставляя при необходимости объекты из графического редактора Paint или Visio. Отчёт должен содержать титульный лист, образец которого приведен в прил. Б. Стиль оформления текста в отчёте должен соответствовать общепринятому государственному стандарту оформления дипломных работ [10], далее ГОСТ–стилю, основными атрибутами которого являются: шрифт – Times New Roman, размер шрифта (кегль) – 14, выравнивание в абзаце – по ширине, отступ первой строки абзаца – 1 см, междустрочный интервал –1,5 (полуторный). Размеры полей страницы: правое – не менее 10 мм, верхнее и нижнее – не менее 20 мм, левое – не менее 30 мм. Умение оформлять документ по стандарту пригодится студенту и в дальнейшем обучении по специальности. Отчёт по лабораторным работам является структурированным документом, состоящим из введения, основной части и заключения. Во введении следует кратко описать общие сведения об основных алгоритмических конструкциях и о способах их реализации на языке VBA (перечислить основные операторы языка для каждого типа алгоритма). Также можно перечислить области использования алгоритмического языке VBA. Введение должно занимать объём не более 1–2 страниц. В заключении необходимо подвести итоги своей работы в 1-м и 2-м семестрах по созданию приложений на языке VBA в табличном процессоре Excel и описать полученные навыки и методы работы. Можно также указать использованные технологические приёмы работы в текстовом процессоре MS Word по созданию данного отчёта [7], которые можно будет с успехом применять и в будущем при создании других информационных продуктов. Основная часть отчёта формируется поэтапно после выполнения каждого задания лабораторной работы общей тематики в виде
8
многоуровневого списка (4 уровня), последний уровень которого практически во всех заданиях должен содержать следующие пять пунктов: 1. Текст условия задачи (формулы с помощью Word). 2. Контрольный расчёт (тест), выполненный «вручную», с удобным(-и) для расчёта набором (-ами) исходных данных, не являющихся тривиальными. 3. Схема алгоритма решения задачи (выполненная в Word или в Visio). 4. Текст программы на языке VBA. 5. Интерфейс (копия экрана с полученными ответами, размещёнными на рабочем листе Excel). Вид 4-х уровневого списка оформления отчёта по заданиям представлен ниже (уровни выделены более жирным начертанием своих символов, полностью все уровни списка присутствуют в оформлении лабораторных работ №2 и №3, в остальных лабораторных работах уровень 3 отсутствует). Оглавление отчёта должно иметь такую же структуру. Заголовки пунктов должны соответствовать предлагаемому образцу. Ниже приведена структура оформления отчёта, причём текст пунктов списка оформлен в стандартном стиле, принятом для дипломных работ. 1.2. Структура оформления отчёта (и его оглавления) Введение I. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ Лабораторная работа №1. Вычисления по формулам 1. Задание №1 2. Контрольный расчёт (подбор тестов) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами) II.ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ Лабораторная работа №2. Вычисления с проверкой условий. Часть 1. Вычисления с выбором формул (тип 1) 1. Задание №2.1 2. Контрольный расчёт (подбор тестов) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами)
9
Часть 2. Анализ данных и принятие решения (тип 2) 1. Задание №2.2 2. Контрольный расчёт (подбор тестов) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами) III. ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ Лабораторная работа №3. Обработка одномерных массивов. Часть 1. Вычисление сумм и произведений, запоминание результатов в новый массив 1. Задание №3.1 2. Контрольный расчёт (подбор тестов) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами) Часть 2. Обработка одномерных массивов с ветвлением алгоритма внутри цикла (проверка условий). 1. Задание №3.2 2. Контрольный расчёт (подбор тестов) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами) Лабораторная работа №4. Обработка строк символов 1. Задание №4 2. Контрольный расчёт (подбор тестов) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами) Лабораторная работа №5. Вычисления с помощью итерационных циклов (подсчет суммы бесконечного ряда с заданной точностью ε) 1. Задание №5 2. Контрольный расчёт (три первых слагаемых ряда) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами) IV. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ СО СТРУКТУРОЙ ВЛОЖЕННЫХ ЦИКЛОВ Лабораторная работа №6. Обработка двумерных массивов (матриц) 1. Задание №6
10
2. Контрольный расчёт (подбор тестов) 3. Схема алгоритма решения задачи 4. Реализация алгоритма на языке VBA (текст программы) 5. Интерфейс (вид экрана с полученными результатами) Лабораторная работа №7. Создание итогового меню 1. Интерфейс меню выполненных работ 2. Схема алгоритма решения задачи 3. Реализация алгоритма на языке VBA (фрагмент программы) Заключение Чтобы правильно оформить отчёт, соблюдая вышеприведенную структуру, следует вначале с помощью предварительно созданного макета многоуровневого списка создать все заголовки пунктов (от введения до заключения), а затем последовательно вложить между пунктами последнего (4-го) уровня соответствующие фрагменты основной части отчёта (п. 1–5). Эти фрагменты должны быть предварительно подготовлены в отдельном(-ых) файле(-ах) по мере выполнения каждого задания Что касается специальных заданий из вводной части лабораторного практикума, а именно изучения технологических приёмов работы в текстовом процессоре Word, то в состав отчёта их включать не следует в связи с общей спецификой выполнения этих работ и отсутствием необходимости вести расчёты на языке VBA. 1.3. Задания для лабораторного практикума «Технология подготовки документов в текстовом процессоре MS Word» Практическая работа № 1. Создание простых документов 1. Запустить текстовый процессор MS WORD. Развернуть окно на весь экран. Установить масштаб 100%. Включить режим показа специальных (непечатаемых) символов. Проконтролировать наличие на экране горизонтальной и вертикальной линеек. 2. Используя панель форматирования, установить: – стиль Обычный, шрифт Times New Roman, кегль шрифта 14 пт. 3. Прямо на линейке установить следующие параметры (см):
11
– поля страницы: левое – 2,5; правое – 15; верхнее – 3; нижнее – 20; – границы абзаца: отступ слева – 1; отступ справа – 10; отступ первой строки – 2; 4. Ввести текст, в котором пять абзацев, как показано на образце:
5. Сохранить текст в файле с именем Задание_1 в своей папке. 6. Выполнить проверку правописания (клавиша F7). 7. Закрыть созданный документ с сохранением. 8. Вновь открыть файл Задание_1. Дополнить его еще одним абзацем, в котором сообщить следующие статистические сведения о файле: количество страниц, абзацев, строк, слов, символов и размер файла в Кб, располагая каждую характеристику на новой строке абзаца. Эти сведения можно получить через пункт меню Файл – Свойства – Дополнительные свойства – Статистика. Сохранить измененный файл с тем же именем. 9. Отформатировать текст файла следующим образом: • 1-й абзац (заглавие) красными буквами высотой 20 пт, шрифт полужирный, расположить по центру;
12
• 2-й абзац – изменить стиль Обычный на Заголовок2; • 3-й абзац – изменить размер шрифта на 12 пт; • 5-й абзац отформатировать по образцу 3-го (кнопка Формат по образцу); • 6-й абзац – шрифт курсив, размер 10 пт; • Выделить названия клавиш в тексте полужирным курсивом. Сохранить документ с именем Новое_Задание_1 в своей папке. Практическая работа № 2. Технология создания многоуровневых списков и оглавления Перед выполнением задания внимательно прочитайте текст, который следует ввести в документ, поскольку он содержит сведения о том, как создавать различные виды списков в документе.
13
1. Набрать приведенный выше текст, соблюдая расположение абзацев, шрифт Times New Roman, 12 кегель. 2. В меню Вид выбрать режим: структура документа. Задать первый уровень для основного заголовка и второй уровень для заголовков I и II. В последствии можно автоматически сформировать оглавление с помощью команды Ссылки–Оглавление. 3. Выделить первый список с нумерацией. Изменить в нем абзацный отступ. Поменять шрифт на Arial, 10 кегель. Добавить текст Шаг после номера абзаца. 4. Выделить два абзаца маркированного списка и поменять символ маркера на ⊗. Изменить межстрочный интервал на полуторный и добавить интервал между абзацами 6 пт. 5. Сохранить документ с именем Задание_2списки. Практическая работа № 3. Стили оформления текстовых документов и приёмы редактирования Задание 3.1. Создание документа с применением стилей 1. Создать новый файл, используя готовые стили: Название, Заголовок 1, Обычный, Прощание. Текст файла может быть таким:
2. Выполнить проверку правописания (клавиша F7).
14
3. В абзаце «Следует помнить…» изменить отступы, междустрочные расстояния, расстояния до и после абзаца. 4. Сохранить файл с именем Задание_стили1. 5. Научиться создавать свои стили, выполнив следующее упражнение: 1) создать три стиля: Мое заглавие, Мой текст, Мой список, используя панель Стили (кнопка Создать стиль): a) стиль для заглавия: • в окне диалога Создать стиль ввести имя стиля МоеЗаглавие, основан на стиле Обычный, стиль следующего абзаца Основной текст; • выбрать командную кнопку Формат и из предложенного списка последовательно установить: шрифт Courier New, полужирный, размер 16, подчеркивание только слов, затем Абзац: отступы слева и справа 0, первая строка без отступов, межстрочный интервал – двойной, выравнивание – по центру; положение на странице – «не отрывать от следующего»; • выйти из создания стиля, нажав ОК. b) стиль для обычного текста создать аналогично предыдущему, но с параметрами: имя – «Мой текст», стиль следующего абзаца – любой. Шрифт – Times New Roman, начертание «обычный», размер 14, затем пункт Абзац: отступ первой строки 1,5, отступы справа и слева 0, междустрочный интервал – одинарный; c) стиль для текста списков создать с параметрами: имя – «Мой список», стиль следующего абзаца – пусто. Шрифт – Arial, «обычный», размер 14. Абзац: первая строка – «выступ», отступ слева 1.5, справа – 0, междустрочный интервал одинарный. 2) через панель Стиль, задавая последовательно только что созданные стили, набрать нижеприведенный текст, начиная с заголовка. 3) сохранить текст в файле Задание_стили2. Примечание: Перейдя в вид просмотра документа Черновик (команда Вид–Черновик) и установив ширину полосы стилей не менее 2 см (Файл – Параметры – Дополнительно – Экран – ширина полосы стилей в режимах черновика и структуры – 2 см), слева можно видеть все стили, которые есть в документе.
15
Задание 3.2. Некоторые приемы редактирования документа 1. Создать новый документ – файл с именем Задание_3-2. 2. Скопировать в него тексты из всех предыдущих файлов. 3. Сделать закладку перед текстом «Office-2000», используя команду Вставка – Закладка. 4. Установить курсор на начало документа и выполнить поиск слова «текст». Сколько раз встретилось это слово? А сколько раз встречается текст «кнопк»? 5. При помощи клавиши F5 быстро вызвать окно с вкладкой Перейти и перейти к строке 15. Командой Разметка страницы – Номера строк пронумеровать строки, чтобы убедиться в том, что номер строки действительно 15. Вставить перед ней пустую строку. 6. Установив курсор в начало документа, перейти к закладке, сделанной в пункте 3 и заменить текст «2000» на текст «миллениум». 7. Заменить в тексте слово «Office» на слово «Оффис». 8. С помощью команды Заменить провести по всему тексту следующие замены: • слово «текст» на слово «документ»; • шрифт полужирный курсив на шрифт курсив, 16 пт, зеленый. 9. Закрыть отредактированный документ с сохранением всех изменений. 10. Создать новый документ. Записать в него краткую справку по Windows, получив ее ранее из соответствующего источника. 11. Скопировать этот текст в буфер обмена, быстро выделив его тройным щелчком мыши слева и выполнив команду Правка –
16
Копировать или щелкнув по соответствующей кнопке панели инструментов. 12. Открыть файл Задание_стили2. 13. Вставить помещенный в буфер обмена текст в конец файла Задание_стили2 несколько раз. 14. Закрыть документ с сохранением под старым именем. Глава 2. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ VBA. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ПРИЛОЖЕНИЙ Лабораторная работа № 1. Программирование алгоритмов линейной структуры. Вычисления по формулам Цель работы – овладение практическими навыками разработки и программирования вычислительного процесса линейной структуры и навыками по отладке и тестированию программ на языке VBA. Задания для самостоятельной подготовки: 1. Изучить в [2, 4]: – запись констант, переменных, стандартных функций на языке VBA; – правила записи арифметических и логических выражений; – арифметический оператор присваивания; – организацию простейшего ввода-вывода данных; – организацию простейшей проверки логического условия. 2. Разработать алгоритм решения задачи. 3. Составить программу решения задачи. 4. Подготовить тестовый вариант исходных данных и вычислить для них вручную или с помощью калькулятора значения вычисляемых в программе величин. Задание к работе: 1. Вычислить на компьютере значения переменных, указанных в табл. 1 прил. А по заданным расчетным формулам. На печать вывести значения вводимых исходных данных и результаты вычислений, сопровождая вывод наименованиями выводимых переменных. 2. Проверить, обладает ли разработанный алгоритм свойствами результативности и массовости. Для этого следует проанализировать
17
условие задачи и ответить самому себе на вопрос: Всегда ли может быть решена данная задача, и при любом ли наборе исходных данных? В случае отрицательного ответа определить ограничения, выполнение которых делает задачу результативной. Установить область допустимых значений для вводимых переменных и в алгоритме предусмотреть входной контроль их правильности. Цель состоит в том, чтобы при любых исходных данных был получен результат или выдано сообщение о том, что задача не может быть решена вследствие неверных исходных данных. Усовершенствованный таким образом алгоритм будет обладать свойствами результативности и массовости. 3. Внести изменения в программу в соответствии с принятыми ограничениями на получение результата. 4. Протестировать модифицированную программу. 5. Оформить отчёт по лабораторной работе №1 согласно общим требованиям к оформлению в соответствии с нижеприведенным образцом. Пример выполнения работы (образец оформления отчёта) Ниже приводится образец оформления отчёта по лабораторной работе №1, выполненный в соответствии с ГОСТ-стилем, принятым для оформления дипломных работ. Для разделения пунктов отчёта использован вышеприведенный многоуровневый список. Ограничениями задачи являются значения переменных, при которых знаменатель вычисляемой дроби обращается в нуль. Эти ограничения описаны в пункте 2 отчёта. В алгоритме перед выполнением каких-либо вычислений проводится проверка исходных данных на принадлежность их к области допустимых значений. При вводе исходных данных в программу предусмотрен вывод пользователю предупреждения о том, какие значения вводимых переменных являются недопустимыми, вызывающими появление сообщения об ошибке и прекращении работы программы. Фрагмент отчёта по лабораторной работе №1 (образец): I. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ Лабораторная работа №1. Вычисления по формулам 1. Задание №1 Даны: , , .
18
Определить: 0.5
|
1.3|
√10
2. Контрольный расчет (подбор тестов) Вначале проанализируем выражения, которые требуется вычислить. Поскольку формула для вычисления переменной является дробью, то при значениях исходных данных, обращающих знаменатель дроби в нуль, проводить дальнейшие расчёты не имеет смысл.
Рис. 1. Схема алгоритма решения задачи №1
19
Знаменатель дроби
.
будет нулевым при =0 или =0. Тогда
вычисление переменной k невозможно и следует выдать пользователю сообщение об ошибке. Поэтому при следующем наборе данных: { =10, =0, =14 } получим в качестве результата текст сообщения «Ошибка: =0 или =0, программа будет завершена!» Остальные варианты исходных данных, когда ≠ 0 и ≠ 0, являются результативными. Тест №1 Пусть набор исходных данных: =10, =25, =14. Тогда получим следующие результаты: 10 0.5 0.5 25 14 3.442 10 25 | |3.442 1.3| 2.142 1.3| √10 √10 2.142 4.628 3. Схема алгоритма решения задачи Схема алгоритма решения задачи представлена на рис. 1. 4. Реализация алгоритма на VBA (текст программы) Sub zadanie_1() Const C1 as Single=0.5, C2 as Single=1.3, C3 as Single=10 Dim f as Single, p as Single, q as Single ‘ исходные данные Dim k as Single, n as Single, d as Single ‘ результаты f= InputBox("Введите значение f") ‘ ввод исходных данных p= InputBox("Введите значение p") q= InputBox("Введите значение q") Cells( 1,1).Value= "Исходные данные:" Cells( 2,1).Value= "f=" ‘ вывод исходных данных Cells( 2,2).Value= f Cells( 3,1).Value= "p=" Cells( 3,2).Value= p Cells( 4,1).Value= "q=" Cells( 4,2).Value= q If (f=0 or p= 0) Then ‘проверка исходных данных на допустимость Cells(6,2)="Ошибка: f=0 или p=0! Программа будет завершена!" Else ‘ вычисления и вывод результатов k =(f*f + С1*(p+q)^2) / (f *p) Cells( 6,1).Value= "Результаты:" Cells( 7,1).Value= "K="
20
Cells( 7,2).Value= k n =abs(k – С2) Cells( 8,1).Value= "N=" Cells( 8,2).Value= n d = Sqr(C3*n) Cells( 9,1).Value="D=" Cells( 9,2).Value= d End If End Sub 5. Интерфейс (вид экрана с полученными результатами) Результаты работы программы, входными данными для которой являлся тест №1, представлены на рис. 2, a. Один из возможных вариантов исходных данных, не входящих в ОДЗ, и вывод соответствующего сообщения об ошибке в качестве результата представлены на рис. 2, б.
а
б Рис. 2. Результаты, полученные при тестировании программы по тесту №1 (а) и по одному из возможных вариантов исходных данных, не входящих в ОДЗ (б)
21
Контрольные вопросы 1. Какие типы величин используются в языке VBA? 2. Каков диапазон значений целых и вещественных типов? 3. Какие типы и имена переменных допустимы в программе? 4. Указать имена стандартных функций для вычисления , sin , cos , ln , | |, √ . 5. Какова последовательность действий при выполнении арифметического оператора присваивания? Допустимо ли использование величин разных типов в арифметическом выражении? 6. Каков приоритет выполнения операций при вычислении арифметического выражения? 7. Каков приоритет выполнения операций при вычислении логического выражения? 8. Как организовать вывод значений, сопровождая выводимое числовое значение наименованием переменной? Лабораторная работа № 2. Программирование алгоритмов разветвляющейся структуры. Вычисления с проверкой условий Лабораторная работа №2 разделена на 2 части: Часть 1. Вычисления с выбором формул (задача 1-го типа). Часть 2. Анализ данных и принятие решения (задача 2-го типа). Цель работы – овладение практическими навыками разработки и программирования вычислительного процесса разветвляющейся структуры, получение дальнейших навыков по отладке и тестированию программы. Задания для самостоятельной подготовки: 1. Изучить возможности языка VBA для реализации: – условной и безусловной передачи управления; – вычислительного процесса разветвляющейся структуры, включая и алгоритмы с вложенным ветвлением. 2. Разработать алгоритм решения задачи в соответствии с заданием. 3. Составить программу решения задачи.
22
4. Подготовить тесты (число тестов равно числу ветвей вычислительного процесса) для проверки правильности функционирования программы. Задание к работе: 1. Вычислить на компьютере значения переменных, указанных в табл. 2 прил. А (задание 2.1 – 1 тип) по заданным расчетным формулам. На экран вывести значения вводимых исходных данных и результаты вычислений, сопровождая вывод наименованиями выводимых переменных. 2. Проверить правильность работы программы по всем ветвям алгоритма по приготовленным ранее тестам. 3. Проанализировать исходные данные, указанные в табл. 2 прил. А (задание 2.2 – 2 тип) для принятия по ним решения, сопровождаемого выводом на экран соответствующего сообщения. Протестировать все возможные альтернативные решения. 4. Сделать отчёт по каждой части лабораторной работы №2 в соответствии с нижеприведенным образцом. В последнем пункте отчёта представить количество копий экрана с результатами (т.е. фрагментов рабочего листа Excel), равное количеству наборов исходных данных для тестирования. Пример выполнения работы Фрагмент отчёта по лабораторной работе №2 II. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ Лабораторная работа №2. Вычисления с проверкой условий. Часть 1. Вычисления с выбором формул (тип 1) 1. Задание №2.1 Даны: , , . Определить: , если 0 ≤ M ≤ 5
·
·
, если · · , в остальных случаях , если 2. Контрольный расчет (подбор тестов) Задача имеет следующие ограничения: ≠0 и ≠0. В противном случае, когда =0 или =0, расчёты не проводятся, и программа выводит на экран сообщение об ошибке.
23
Рис. 3. Схема алгоритма решения задания №2.1
Тест №1 (случай 0 ≤ ≤ 5, Пусть =2, =1, =0,5. Тогда
=
)
→
2
чай 0 ≤
≤ 5), т.к. 0 ≤ 3,75 ≤ 5 – верно ⇒
чай
)⇒
=
2 1 3.75 0.5
2
0,5 .
1 .
.
.
3,75 (слу,
(слу-
24
Тест №2 (остальные случаи c и ≠ ) Пусть =25, =15, =20. → 25 2250, 20 25 15 Тогда 25 20 2250 т.к. 0 ≤ 2250 ≤ 5 – неверно ⇒ . , т.к. 11250 ≠ 2250 (случай ≠ ) ⇒ 3. Схема алгоритма решения задачи Схема алгоритма решения задания №2.1 представлена на рис. 3. 4. Реализация алгоритма на языкеVBA (текст программы) Sub zadanie2_1() Const GR as Single=5 Dim a as Single, b as Single, c as Single ‘ исходные данные Dim M as Single, fs as Single, S as Single ‘ результаты a= InputBox("Введите значение a") ‘ ввод исходных данных b= InputBox("Введите значение b") c= InputBox("Введите значение c") Cells( 1,1).Value= "Исходные данные:" Cells( 2,1).Value= "a=" ‘ вывод исходных данных Cells( 2,2).Value= a Cells( 3,1).Value= "b=" Cells( 3,2).Value= b Cells( 4,1).Value= "c=" Cells( 4,2).Value= c If (a=0 or c= 0) Then ‘проверка исходных данных на допустимость Cells(6,2).Value="Ошибка в данных: a=0 или c=0!" Else ‘ вычисления и вывод результатов M =(a*a – c*c) * (a – b) Cells( 6,1).Value= "Результаты:" Cells( 7,1).Value= "M=" Cells( 7,2).Value= M If (M >=0 and M