Основы алгоритмизации и программирования на VBA
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
Издательский Дом НИТУ «МИСиС»
Год издания: 2021
Кол-во страниц: 188
Дополнительно
Вид издания:
Учебник
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-907227-44-6
Артикул: 797711.01.99
В учебнике дается описание языка программирования VBA в объеме, необходимом для иллюстрации основных понятий. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, а также основные приемы программирования. Также описаны средства ввода и вывода информации программы на VBA, применение процедур и функций. Учебник является важной составляющей подготовки специалистов по программам высшего образования. Предназначен для изучения основ алгоритмизации и начального знакомства с программированием на языке VBA в рамках курса «Информатика» студентами всех специальностей 1-го курса института ЭУПП НИТУ «МИСиС», а также для самостоятельного изучения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Москва 2021 М ИНИС ТЕРС ТВО НАУКИ И ВЫСШ ЕГО О Б РА З О ВА Н И Я РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОМПЬЮТЕРНЫХ НАУК Кафедра инженерной кибернетики О.В. Андреева А.И. Широков ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА VBA Учебник Рекомендовано редакционно-издательским советом университета № 3935
УДК 004.438 А65 Р е ц е н з е н т ы : канд. техн. наук, доцент кафедры моделирования в экономике и управлении Р Г Г У С.В. Никифоров; канд. техн. наук, доцент НИТУ «МИСиС» С.В. Громов Андреева О.В. А65 Основы алгоритмизации и программирования на VBA : учебник / О.В. Андреева, А.И. Широков. – М. : Изд. Дом НИТУ «МИСиС», 2021. – 188 с. ISBN 978-5-907227-44-6 В учебнике дается описание языка программирования VBA в объеме, необходимом для иллюстрации основных понятий. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, а также основные приемы программирования. Также описаны средства ввода и вывода информации программы на VBA, применение процедур и функций. Учебник является важной составляющей подготовки специалистов по программам высшего образования. Предназначен для изучения основ алгоритмизации и началь ного знакомства с программированием на языке VBA в рамках курса «Информатика» студентами всех специальностей 1-го курса института ЭУПП НИТУ «МИСиС», а также для самостоятельного изучения. УДК 004.438 О.В. Андреева, А.И. Широков, 2021 ISBN 978-5-907227-44-6 НИТУ «МИСиС», 2021
Содержание ПРЕДИСЛОВИЕ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 ГЛАВА 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1. Понятие алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.1. Понятие о структурном подходе к разработке алгоритмов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.2. Метод пошаговой детализации . . . . . . . . . . . . . . . 15 1.2. Основные понятия программирования . . . . . . . . . . . . 16 1.3. Этапы решения задач . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4. Основы языка VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.4.1. Переменные. Типы данных . . . . . . . . . . . . . . . . . . 23 1.4.2. Константы (литералы) . . . . . . . . . . . . . . . . . . . . . . 27 1.4.3. Операторы объявления. Инициализация переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.4.4. Математические операторы. Выражения . . . . . . . 29 1.4.5. Преобразование типов . . . . . . . . . . . . . . . . . . . . . . 30 1.4.6. Логические операторы. Выражения . . . . . . . . . . . 32 1.4.7. Основные операторы VBA . . . . . . . . . . . . . . . . . . . 33 1.4.8. Ввод-вывод данных . . . . . . . . . . . . . . . . . . . . . . . . 45 1.4.9. Форматирование . . . . . . . . . . . . . . . . . . . . . . . . . . 55 1.5. Среда разработки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 1.6. Правила построения программного кода . . . . . . . . . . 68 ГЛАВА 2. Организация циклических программ . . . . . . . . . 69 2.1. Циклы по счетчику . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.2. Циклы по условию . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.3. Вложенные циклы. Вычисление рядов . . . . . . . . . . . . 82 Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . 86 ГЛАВА 3. Организация разветвлений. Разветвления в цикле . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.1. Организация разветвлений. Условный оператор. If-блок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.2. Циклы с разветвлением . . . . . . . . . . . . . . . . . . . . . . . . 93 3.3. Составление программ для обработки потока данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . 98
ГЛАВА 4. Массивы. Типовые алгоритмы обработки одномерных массивов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.1. Одномерные массивы . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.2. Ввод-вывод массивов . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.3. Алгоритмы обработки одномерных массивов . . . . . . 103 Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . 125 ГЛАВА 5. Матрицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.1. Описание двухмерных массивов (матриц). Ввод, вывод матриц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.2. Работа с матрицами на основе алгоритмов обработки одномерных массивов . . . . . . . . . . . . . . . . . . . 127 5.3. Техника работы с квадратными матрицами . . . . . . . 133 Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . 136 ГЛАВА 6. Подпрограммы, процедуры и функции . . . . . . . 138 6.1. Подпрограммы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.2. Описание процедуры. Обращение к процедуре. Формальные и фактические параметры . . . . . . . . . . . . . . 139 6.3. Функция. Оператор-функция. Подпрограмма- функция. Описание и обращение . . . . . . . . . . . . . . . . . . . 142 6.4. Особенности использования переменных в процедурах и функциях . . . . . . . . . . . . . . . . . . . . . . . . . 144 Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . 151 ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Задания к главе 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Задания I уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Задания к главе 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Задания I уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Задания к главе 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Задания I уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Задания к главе 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Задания I уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Задания к главе 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Задания I уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 БИБЛИОГРАФИЧЕСКИЙ СПИСОК . . . . . . . . . . . . . . . . . . 174 Приложение 1. Встроенные типы . . . . . . . . . . . . . . . . . . . . . 176 Приложение 2. Параметры и специальные символы функции format() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
ПРЕДИСЛОВИЕ Современное развитие общества предполагает широкое ис пользование компьютерных технологий в различных сферах деятельности. Умение использовать разнообразные возможности, предоставляемые компьютером, обеспечивают конкурентоспособность специалиста. Настоящий учебник предназначен для приобретения ком петенций в области алгоритмизации задач и разработки приложений на базе языка программирования Visual Basic for Application (VBA). При этом следует отметить, что авторы не ставили цели знакомства со всеми возможностями, предоставляемыми языком VBA, а рассматривали лишь ограниченное подмножество средств, необходимых для решения предлагаемых задач в рамках изучаемого курса. Учебник содержит введение, шесть глав и два приложения. Первая глава в основном посвящена вопросам алгоритмизации и изучению базовых приемов программирования. В ней дается представление об алгоритмическом методе, используемом при решении задач на компьютере, и современных подходах к разработке алгоритмов и программ; рассматриваются основные аспекты и этапы решения задач на компьютере, излагаются приемы и методы разработки и проверки правильности программ. Также дается краткое описание основных понятий языка VBA и начальные сведения об использовании среды разработки. Главы со 2 по 6 содержат теоретическое введение, в котором приводятся типовые алгоритмы и приемы решения задач соответствующего класса, проиллюстрированные примерами программ, а также контрольные вопросы, которые могут использоваться как для самопроверки, так и для контроля преподавателем. В конце приводятся задачи для самостоятельного выпол нения.
ВВЕДЕНИЕ Общие сведения об операционной системе Windows. По давляющее большинство компьютеров, используемых в России, – это так называемые IBM PC совместимые персональные компьютеры. Для таких ЭВМ широкое распространение получила операционная система Windows компании Microsoft. Операционная система – это группа взаимосвязанных программ, выступающая посредником между аппаратными средствами ЭВМ и пользователем, обеспечивающая управление процессами и ресурсами ЭВМ. В частности, Windows распределяет ресурсы компьютера между всеми прикладными программами (это все программы, кроме самой операционной системы), обеспечивает взаимодействие разных устройств и возможность прерывания процессора, организует регулярный опрос клавиатуры, мыши и других устройств, с помощью которых пользователь общается с компьютером. Windows – графическая операционная система для компью теров платформы IBM PC. Основная идея – принцип рабочего стола. Создатели операционной системы не только оформили внешний вид «Рабочего стола» как письменный стол (папки, документы, часы), но и основные приемы работы пользователя спроектировали аналогично приемам работы за письменным столом. Приложения Microsoft Office и общие принципы их ор ганизации. Приложения Microsoft Office: Word – программа обработки текстов, Excel – работа с таблицами, СУБД Access – работа с базами данных, Power Point – создание презентаций – изучаются в курсе «Информатика». Работа пользователя с этими приложениями организо вана в соответствии с объектно-ориентированным принципом. Это означает, что все создаваемое и редактируемое пользователем при работе с приложением – это объекты (например, в Word – абзац, рисунок, в Excel – ячейка, диаграмма, в Access – таблица, запрос). Объекты имеют свойства и методы. Свойства объекта – его характеристики, которые можно менять (например, цвет, размер). Методы – это действия, которые с объектом можно произвести (напри
мер, переместить, удалить). Меню различных приложений Microsoft Office устроено по одному и тому же принципу и содержит только те различия, которые отвечают за специфику приложения. Результат работы в Word, Excel или Access – это некий документ, для которого существует стандартный набор операций: создание, сохранение, удаление, открытие и т.п. Поэтому, например, пункт меню «Файл» во всех трех приложениях имеет практически одинаковое содержимое: распечатать документ, изменить свойства документа, сделать предварительный просмотр, посмотреть последние открытые документы приложения – все это актуально и в Word, и в Excel, и в Access и делается примерно одинаково. Пункты меню «Правка», «Вид», «Вставка», «Сервис», «Окно», «Справка» присутствуют в различных приложениях, несут одинаковую смысловую нагрузку и имеют похожее содержимое. Панели инструментов – это группы часто употребляе мых команд, дублирующие «глубоко» расположенные пункты меню в виде кнопок. Большинство приложений Microsoft Office оперируют такими панелями. Использование Windows-приложений существенно расши ряет сферу использования компьютеров. Однако стандартные средства этих приложений не всегда позволяют решить поставленную задачу в полном объеме. Иногда требуется дополнительно составить отдельную программу с использованием средств, отсутствующих в этом Windows-приложении. Visual Basic.NET 2008 (VB.NET) – это объектно-ориенти рованный язык визуального программирования высокого уровня. Этот язык предназначен для разработки Windowsприложений и Web-приложений. Одним из основных компонентов платформы .NET является Framework. Framework содержит все функции операционной системы и делает их доступными приложению через методы. Успех VB в первую очередь являлся следствием простоты и удобства этого языка. С появлением Framework VB стал не менее мощным, чем любой другой язык. Вряд ли можно найти что-то, что нельзя сделать, применяя VB.NET, но можно сделать с помощью другого языка. На VB написано больше при
ложений, чем на любом другом языке. Вот благодаря чему VB стал одним из лидеров в программировании: 1) стандартный пользовательский интерфейс пишется на нем очень быстро и непринужденно. Полученный результат выходит стандартным в применении и каким угодно «навороченным» по внешнему виду; 2) удобный, быстрый, легко реализуемый доступ к базам данных; 3) глубокая интеграция с Microsoft Office. Гигантский плюс VB – время разработки приложения ми нимально. И это ценится. Там, где требуется высокая скорость разработки приложения, – для VB практически нет альтернативы. Очень сильное преимущество VB в его, скажем так, распространенности или стандартизованности. VB доступен в виде VBA во всех офисных приложениях, а также в некоторых других продуктах. Visual Basic for Application – язык объектно-ориентиро ванного программирования. Настоящий учебник позволит познакомиться с языком Visual Basic for Application (VBA), при помощи которого можно выполнять обработку данных в любом из приложений Windows, что позволяет осуществлять взаимодействие со всеми приложениями Windows, существенно расширяя их функциональные возможности, и, написав программу в одном из приложений, ее можно использовать в любом другом. Язык VBA является объектно-ориентированным языком, встроенным в среду Windows. Объектно-ориентированное программирование (ООП) – новый подход к программированию, связанный с увеличением объема и сложности программного обеспечения. Базовые отличия VBA как языка ООП будут рассмотрены позднее вне этого учебника. Объектно-ориентированное программирование по сравне нию с использованием традиционных алгоритмических языков существенно расширяет возможности и облегчает разработку сложных программных систем в большой степени благодаря наличию упомянутой выше библиотеке классов, при использовании которой отпадает необходимость в написании кодов многих типовых алгоритмов.
Однако при решении научно-технических задач алгорит мическая составляющая является весьма существенной. В настоящем учебнике вопросам алгоритмизации и изучению базовых приемов программирования уделяется значительное внимание. Вместе с тем рассматриваются и используются и объектные свойства языка, на наглядных примерах демонстрируются предоставляемые ими новые возможности.