Информатика VBA. Учебное пособие по дисциплинам Информатика иИнформационные технологии
Скачать 1.05 Mb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Московский государственный машиностроительный университет (МАМИ) /УНИВЕРСИТЕТ МАШИНОСТРОЕНИЯ/ Н.С.Карташов, А.И.Макаров, Д.А.Макаров Алгоритмизация и программирование на VBA в Microsoft Excel Учебное пособие по дисциплинам «Информатика» и «Информационные технологии» для студентов заочного отделения всех направлений и специальностей Одобрено методической комиссии по направлению 230000 «Информатика и вычислительная техника» Москва - 2012 2 УДК 681.3.06 Разработано в соответствии с Федеральным государственным об- разовательным стандартом для студентов заочного отделения всех специальностей и направлений на основе программ по дисциплинам «Информатика» и «Информационные технологии». Рецензенты: - профессор кафедры «Специальное машиностроение -1» МГТУ им. Н.Э. Баумана, д.т.н., проф., Фомичев Ю.И., - доцент кафедры «Информационные технологии в экономике» к.э.н., доцент Аркатов П.А. «Алгоритмизация и программирование на VBA в Microsoft Excel» Учебное пособие по дисциплинам «Информатика» и «Информационные технологии» для студентов заочного отделения всех направлений и специальностей стр. 133, рис. 28, табл. 20, библ. 10, прил. 5 Университет машиностроения 2012 Кафедры «Информационные системы и дистанционные технологии» и «Автоматизация и управление». Пособие ориентировано на изучение основ алгоритмизации и про- граммирования применительно к инженерной деятельности будущих специалистов. В качестве языка программирования выбран язык Vis- ual Basic for Application Microsoft Excel . Приводятся основы синтак- сиса и примеры программ на языке VBA. © Карташов Николай Сергеевич © Макаров Алексей Иванович © Макаров Дмитрий Алексеевич © Московский государственный машиностроительный университет (МАМИ) 3 Содержание Введение ...................................................................................................... 4 1 Алгоритм и его свойства ................................................................... 8 2 Основные понятия VBA. Линейные алгоритмы ........................... 16 2.1 Элементы языка VBA .................................................................. 17 2.2 Типы данных VBA ....................................................................... 19 2.3 Константы VBA ............................................................................ 22 2.4 Переменные VBA ......................................................................... 26 2.5 Выражения в VBA ........................................................................ 28 2.6 Встроенные функции VBA ......................................................... 30 2.7 Оператор присваивания ............................................................... 34 3 Разветвляющиеся алгоритмы .......................................................... 36 3.1 Оператор IF и его формы записи ................................................ 39 3.2 Типовые задачи разветвляющихся алгоритмов. ....................... 43 4 Циклические алгоритмы .................................................................. 53 4.1 Оператор цикла For ...................................................................... 54 4.2 Оператор цикла Do ....................................................................... 58 4.3 Вложенные циклы ........................................................................ 61 5 Обработка массивов данных ........................................................... 66 5.1 Ввод-вывод массивов................................................................... 69 5.2 Программирование обработки одномерных массивов ............ 75 5.3 Программирование обработки двумерных массивов .............. 80 6 Задания к лабораторным и расчетно-графическим работам ....... 89 6.1 Лабораторная работа №1 ............................................................. 90 6.2 Задание к расчетно-графической работе №1 ............................ 94 6.3 Лабораторная работа №2 ........................................................... 101 6.4 Задание к расчетно-графической работе №2. ......................... 106 ЛИТЕРАТУРА ........................................................................................ 111 Приложение А Описание интегрированной среды разработки VBA 112 Приложение Б Операции в VBA и приоритеты операций ................ 118 Приложение В Математические функции VBA ................................. 122 Приложение Г Функции преобразования данных .............................. 127 Приложение Д Встроенные константы VBA функции MsgBox ....... 129 4 Введение У дисциплины «Информатика» есть много определений. Наибо- лее полное и широкое известное определение информатики дано на Международном конгрессе в Японии в 1978 г.: «Понятие информати- ки охватывает области, связанные с разработкой, созданием, исполь- зованием и материально-техническим обслуживанием систем обра- ботки информации, включая машины, оборудование, математическое обеспечение, организационные аспекты, а также комплекс промыш- ленного, коммерческого, административного, социального и полити- ческого воздействия» Основу современного содержания информатики составляют ЭВМ и машинная обработки информации. В информатике, как облас- ти деятельности, можно выделить несколько направлений: - научное - фундаментальные исследования процессов получения, передачи, представления, хранения и обработки информации, а также разработка технических и программных средств для опери- рования с информацией; - промышленное - массовое производство компьютеров и других технических средств информатики; - социальное - изучение и решение социальных вопросов информа- тизации общества, в том числе компьютеризация учебного процес- са. В информатике выделяют три неразрывно и существенно свя- занные части — технические средства, программные и алгоритмиче- ские средства. Технические средства – составляют аппаратную конфигурацию вычислительных систем, или аппаратуру компьютеров, в английском языке обозначаются словом Hardware, которое буквально переводит- ся как «твердые изделия». 5 Программные средства – совокупность программ обработки данных и необходимых для их эксплуатации документов. Для обозначения программных средств, под которыми понима- ется совокупность всех программ, используемых компьютерами, и область деятельности по их созданию и применению, используется слово Software (буквально — «мягкие изделия»), которое подчерки- вает равнозначность самой машины и программного обеспечения, а также способность программного обеспечения модифицироваться, приспосабливаться и развиваться. Алгоритмические средства – разработка методов и технологий обработки информации, проектирования информационных систем Программированию задачи всегда предшествует разработка способа ее решения в виде последовательности действий, ведущих от исходных данных к искомому результату, иными словами, разработка алгоритма решения задачи. Для обозначения части информатики, свя- занной с разработкой алгоритмов и изучением методов и приемов их построения, применяют термин Brainware (англ. brain — интеллект ). В пособии основное внимание уделяется третьей части дисцип- лины «Информатика» - алгоритмизации и программированию. В ка- честве основного языка программирования рассматривается язык Visual Basic for Application (VBA), который позволяет автоматизиро- вать работу в приложениях пакета Microsoft Office. В необходимых ситуациях уточняется версия пакета, для которого написан тот или иной фрагмент программы. Visual Basic for Applications (VBA) - это сочетание одного из са- мых простых языков программирования и всех вычислительных воз- можностей Excel. Он прост в освоении и позволяет быстро получать ощутимые результаты - конструировать профессиональные приложе- ния, решающие практически все задачи, встречающиеся в среде Win- 6 dows . При этом создание многих приложений с использованием VBA проще и быстрее, чем при помощи других языков программирования. На сегодняшний день язык программирования VBA является мощным программным дополнением к таким пакетам как: • Microsoft Office – Word, Excel, PowerPoint, Access, и тд.; • Microsoft Project; • CorelDraw версии 9 или выше; • AutoCAD R 14 или выше; • а также много иных приложений, в которых могут использо- ваться как полноформатные версии VBA, так и урезанные (VBscript) и тд. VBA применяет технологию визуального программирования, позволяющую наглядно конструировать экранные формы и управ- ляющие элементы управления непосредственно на экране. VBA по- зволяет так же создавать программы при помощи средства МасroRecorder (автоматическая запись макроса). VBA имеет сложные и мощные средства, предназначенные для создания, отладки, доку- ментирования и проектирования больших приложений – интегрированную среду разработки (Integrated Development Environment), сокращенно IDE VBA. Базовые сведения об интегриро- ванной среде программирования VBA приведены в приложении А. В данном пособии рассматриваются основные элементы языка VBA , приводятся различные примеры. Для изучения основ програм- мирования и получения практических навыков по составлению и от- ладке программ на языке VBA студентам предлагается выполнить на компьютере представленные в данном пособии лабораторные работы и свой вариант расчетно-графической работы (РГР). Тексты лабора- торных работ и задания к РГР приведены в разделе 6. При выполнении расчетно-графических работ студент обязан заранее подготовиться к ним, для этого необходимо: 7 1) изучить теоретический материал работы по лекциям, данному пособию и рекомендуемой литературе; 2) оформить отчет по расчетно-графической работе. Отчет по расчетно-графической работе должен быть оформлен на листах бумаги формата А4 и включать в себя следующие разделы: - титульный лист; - краткий конспект теоретической части; - условия задания своего варианта; - решение задания в виде текста программы и, если это необходимо, в виде блок-схемы; - тестовые данные для отладки программы и ожидаемый результат тестирования программы; - полученный результат при выполнении программы на ЭВМ. В пособии при описании синтаксических конструкций языка VBA используются отдельные элементы нотации Бэкуса-Наура (впервые такая нотация была применена при описании языка Алгол и название получила по фамилиям ученых ее разработавших - Д. Бэку- са и П. Наура): - параметр, записанный без скобок, должен обязательно быть указан в данной конструкции; - параметр, заключенный в квадратные скобки, обозначает параметр по умолчанию – если его не задать, то будет назначено некоторое стандартное значение; - параметры, заключенные в фигурные скобки, обозначают альтер- нативные параметры по умолчанию – следует задать одну из пред- ложенных конструкций, либо не задавать ничего. При подготовке пособия был использован пакет Microsoft Office версии 7. 8 1 Алгоритм и его свойства Решение задач на компьютере основано на понятии алгоритма. Единого «истинного» определения понятия «алгоритм» нет. В старой трактовке алгоритм — это точный набор инструкций, описывающих последовательность действий некоторого исполнителя для достиже- ния результата, решения некоторой задачи за конечное время. Одно из наиболее удачных определений понятия алгоритма принадлежит американскому учёному Дональду Эрвину Кнуту (англ. Donald Ervin Knuth, родился 10 января 1938): «Алгоритм — это ко- нечный набор правил, который определяет последовательность опе- раций для решения конкретного множества задач и обладает пятью важными чертами: конечность, определённость, ввод, вывод, эффек- тивность». По мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что какие-то действия алгоритма должны быть выполнены только друг за другом, но какие-то могут быть и независимыми. Каждый алгоритм в явной или неявной форме содержат сле- дующий ряд общих свойств: - каждый алгоритм предполагает наличие исходных (входных) дан- ных и результатом работы алгоритма является получение требуе- мого результата. При работе алгоритма выполняется последова- тельность некоторых элементарных действий, которые называют шагами, а процесс их выполнения называют алгоритмическим процессом. Таким образом, проявляется свойство «дискретно- сти» алгоритма (алгоритм должен состоять из конкретных дейст- вий, следующих в определенном порядке); - необходимым условием, которому удовлетворяет алгоритм, явля- ется его «детерминированность», или «определённость». В каж- дый момент времени следующий шаг работы однозначно опреде- 9 ляется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. Однако, существуют вероятностные алгоритмы, в которых сле- дующий шаг работы зависит от текущего состояния системы и ге- нерируемого случайного числа; - свойство алгоритма «массовость» подразумевает возможность применения алгоритма к разным наборам исходных данных. Каж- дый алгоритм призван решать класс однотипных задач; - свойство «понятность» предполагает наличие в алгоритме для исполнителя только тех команд, которые ему (исполнителю) дос- тупны и которые входят в его систему команд. - свойство «конечность» требует, чтобы каждое действие и алго- ритм в целом должны иметь возможность завершения; - свойство «результативность»означает, что при корректно за- данных исходных данных алгоритм должен приводить к правиль- ному результату для всех допустимых входных значений и выда- вать результат за конечное число шагов или сообщить о невозмож- ности по тем или иным причинам решения поставленной задачи. Разработка алгоритма является сложным и трудоемким процес- сом. Алгоритмизация – это техника разработки (составления) алго- ритма для решения задач на ЭВМ. Стадии создания алгоритма: - алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает. - алгоритм должен быть представлен в форме, понятной тому объек- ту (в том числе и человеку), который будет выполнять описанные в алгоритме действия. Для записи алгоритма решения задачи применяются следующие изобразительные способы их представления: 10 - словесно- формульное описание; - блок-схема (схема графических символов); - алгоритмические языки. При записи алгоритма существует общая методика: - необходимо обозначить начало и конец алгоритма; - описать входные и выходные данные; - указать команды, которые позволяют выполнять определенные действия над необходимыми данными. Словесно-формульный способ записи алгоритма характеризует- ся тем, что описание осуществляется с помощью слов и формул. Со- держание последовательности этапов выполнения алгоритмов запи- сывается на естественном профессиональном языке предметной об- ласти в произвольной форме. Графический способ описания алгоритма (блок - схема) получил широкое распространение. Для графического описания алгоритмов используются схемы алгоритмов с использованием стандартных гра- фических элементов (блоки), которые соединяются между собой ли- ниями связи. Правила выполнения блок-схем определяются ГОСТом: «ГОСТ 19.701- 90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения». Основные элементы блок- схемы, применяемые при создании программы, приведены в таблице 1.1. Порядок выполнения этапов указывается стрелками, соединяю- щими блоки. Допустимо также указывать стрелки только на горизон- тальных линиях в направлении слева направо. Геометрические фигу- ры размещаются сверху вниз и слева направо. Нумерация блоков производится в порядке их размещения в схеме. 11 Таблица 1.1 - Основные элементы блок-схем алгоритма Графическое представление Описание Начало или конец алгоритма. Внутри фигуры пишут «начало» или «конец» соответственно Прямоугольником обозначается операция. Внутри блока пишут операции, которые выполняются на дан- ном шаге алгоритма. Ромбом обозначается оператор ветвления. Внутри ромба записываются проверяемые условия Параллелограмм обозначает операции ввода-вывода данных Цикл с известным числом итераций. Внутри обычно указывают счетчик цикла, начальное, конечное значе- ние и шаг цикла Алгоритмические языки - это специальное средство, предназна- ченное для записи алгоритмов в аналитическом виде. Алгоритмиче- ские языки близки к математическим выражениям и к естественным языкам. Однако алгоритмический язык имеет более скудный словарь ключевых слов и существенно более жесткие правила записи пред- ложений, чем естественные языки. Алгоритм, записанный на алго- ритмическом языке, выполняется по строгим правилам этого кон- кретного языка. Объект, который будет выполнять алгоритм, обычно называют исполнителем. Исполнитель - объект, который выполняет алгоритм. Идеальными исполнителями являются машины, роботы, компьюте- ры... Алгоритм, записанный на «понятном» компьютеру языке про- граммирования, называется программой. Программирование — процесс и искусство создания компью- терных программ и/или программного обеспечения с помощью язы- 12 ков программирования. Программирование сочетает в себе элементы искусства, фундаментальных наук, инженерии и спорта. В узком смысле слова программирование рассматривается как кодирование разработанных алгоритмов. Язык программирования — формальная знаковая система, пред- назначенная для записи программ. Язык программирования опреде- ляет набор лексических, синтаксических и семантических правил, ис- пользуемых при составлении компьютерной программы. Различные языки программирования поддерживают различные стили программирования. Отчасти искусство программирования со- стоит в том, чтобы выбрать один из языков, наиболее полно подхо- дящий для решения имеющейся задачи. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между про- стотой и производительностью (или между временем программиста и временем пользователя). Языки программирования делятся на две группы: операторные и функциональные. К функциональным относятся ЛИСП, ПРОЛОГ и т.д. Операторные языки делятся на процедурные и непроцедурные. Процедурные делятся на машинно-ориентированные и машинно- независимые. К машинно-ориентированным языкам относятся: машинные языки, автокоды, языки символического кодирования, ассемблеры, макроассемблеры. Единственный язык, напрямую выполняемый про- цессором — это машинный язык (также называемый машинным ко- дом). К машинно-независимым языкам относятся: - Процедурно – ориентированные (Паскаль, Фортран и др.); - Проблемно – ориентированные (ЛИСП и др.); 13 - Объектно-ориентированные (Си++, Visual Basic, Java и др.). Для написания текста программы можно использовать обычный текстовый редактор. Но проще и удобнее пользоваться специальными интегрированными средами программирования, которые имеют большинство современных языков программирования. В приложении А описаны основные способы создания и отладки программ в интег- рированной среде программирования, входящей в состав пакета Mi- crosoft Office. Результатами исследований в области технологии программиро- вания стали сначала структурированное программирование, затем объектно-ориентированный подход. Структурный подход опирается на алгоритмическую декомпо- зицию, когда выделяются функциональные элементы системы. Про- грамма разбивается на множество мелких подпрограмм (до 50 опера- торов), которые называют модулями. Наличие модулей позволяет вести проектирование и разработку приложения сверху вниз. Струк- турное программирование имеет 3 составляющие: - нисходящую разработку (нисходящее программирование); - структурное кодирование; - сквозной контроль. Структурное кодирование подразумевает составление легко чи- таемых программ, имеющих четко организованную структуру. При разработке структурной программы сначала пишется главная управ- ляющая программа, вызывающая различные модули. Пока модули еще не созданы, они заменяются «заглушками» – пустыми процеду- рами. Такой подход позволяет иметь рабочую версию программы в то время, пока не все модули еще созданы. В структурном программировании используются алгоритмы трех видов: - линейные алгоритмы; 14 - алгоритмы с ветвлениями; - циклические алгоритмы. Линейный алгоритм (линейная структура) – это такой алгоритм, в котором все действия выполняются последовательно друг за другом и только один раз. Блок-схема алгоритма представляет собой после- довательность блоков, которые располагаются сверху вниз в порядке их выполнения. Первичные и промежуточные данные не оказывают влияния на направление процесса вычисления. Алгоритмы разветвляющейся структуры – это такие алгоритмы, в которых в зависимости от первоначальных условий или промежу- точных результатов необходимо выполнить вычисления по одним или другим формулам. В таких алгоритмах выбор направления про- должения вычисления осуществляется по итогам проверки заданного условия. Ветвящиеся процессы описываются оператором IF (усло- вие), блок-схема которого приведена на рисунке 1.1. Рисунок 1.1 – Схема оператора сравнения Циклические вычислительные процессы – это такие алгоритмы, в которых имеется многократное повторение отдельных участков вы- числений. Для решения таких задач применяются алгоритмы цикли- ческой структуры (циклические алгоритмы). Цикл – последователь- ность команд, которая повторяется до тех пор, пока не будет выпол- нено заданное условие. Оператор ветви «ДА» Оператор ветви «НЕТ» Условие ДА НЕТ 15 Существуют две схемы циклических вычислительных процес- сов. а) цикл с предусловием б) цикл с постусловием Рисунок 1.2 – Схемы циклов Особенностью первой схемы цикла, приведенной на рисунке 1.2.а (цикл с предусловием), является то, что проверка условия выхо- да из цикла проводится до выполнения тела цикла. В том случае, если условие выхода из цикла выполняется, то тело цикла не выполняется ни разу. Особенностью второй схемы цикла, приведенной на рисунке 1.2.б (цикл с постусловием), является то, что цикл выполняется хотя бы один раз, так как первая проверка условия выхода из цикла осу- ществляется после того, как тело цикла выполнено. Существуют циклы с известным числом повторений и итераци- онные циклы. При итерационном цикле выход из тела цикла, как пра- вило, происходит при достижении заданной точности вычисления. 16 |