Главная страница
Навигация по странице:

  • Московский государственный машиностроительный университет (МАМИ) /УНИВЕРСИТЕТ МАШИНОСТРОЕНИЯ/

  • «Алгоритмизация и программирование на VBA в Microsoft Excel»

  • Алгоритмические средства

  • Информатика VBA. Учебное пособие по дисциплинам Информатика иИнформационные технологии


    Скачать 1.05 Mb.
    НазваниеУчебное пособие по дисциплинам Информатика иИнформационные технологии
    АнкорИнформатика VBA.pdf
    Дата28.01.2017
    Размер1.05 Mb.
    Формат файлаpdf
    Имя файлаИнформатика VBA.pdf
    ТипУчебное пособие
    #900
    страница1 из 11
      1   2   3   4   5   6   7   8   9   10   11

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
    РОССИЙСКОЙ ФЕДЕРАЦИИ
    Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
    Московский государственный машиностроительный университет
    (МАМИ)
    /УНИВЕРСИТЕТ МАШИНОСТРОЕНИЯ/
    Н.С.Карташов, А.И.Макаров, Д.А.Макаров
    Алгоритмизация и программирование на 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
      1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта