Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пособие_по_алгоритмизации_и_программированию

..pdf
Скачиваний:
60
Добавлен:
11.04.2015
Размер:
492.32 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования

«Хабаровская государственная академия экономики и права» Кафедра информационных технологий

Ю. В. Любицкий

Решение экономических задач на языке программирования VBA в среде

MS Excel

Учебное пособие

Хабаровск 2009

ББК 3

Л 93

Любицкий Ю. В. Решение экономических задач на языке программирования

VBA в среде MS Excel : учеб. пособие / Ю. В. Любицкий. – Хабаровск: РИЦ ХГАЭП, 2009. – 72 с.

Рецензенты: директор ФГОУ СПО Дальневосточного государственного межрегионального индустриально-

экономического колледжа канд. техн. наук, доцент О.И. Белозёров,

доцент ТОГУ, канд. техн. наук Д. В. Тимошенко

В пособии рассматриваются технологии решения прикладных экономиче-

ских задач в среде MS Excel с помощью объектно-ориентированного языка про-

граммирования Visual Basic for Application (VBA). Приводятся основные конст-

рукции языка программирования, примеры решения типовых задач.

Практические задания предназначены для формирования у студентов навыков алгоритмизации и программирования вычислительных задач для алгоритмов ли-

нейной, разветвляющейся, циклической структуры.

Пособие предназначено для студентов 1 – 2- го курсов всех специальностей и форм обучения, изучающих дисциплину «Информатика».

Утверждено ИБС академии в каче-

стве учебного пособия

©Любицкий Ю. В., 2009

©Хабаровская государственная академия экономики и права, 2009

 

3

 

 

Содержание

 

Предисловие ..................................................................................................................

 

4

Введение ........................................................................................................................

 

5

Этапы решения вычислительных задач на ЭВМ.......................................................

6

Алгоритмизация вычислительных процессов............................................................

7

Понятие алгоритма ....................................................................................................

7

Основные свойства алгоритма .................................................................................

7

Формы представления алгоритмов ..........................................................................

8

Представление алгоритмов в графическом виде....................................................

8

Типы алгоритмических структур .............................................................................

9

Программирование вычислительных задач на языке VBA ....................................

12

Линейная структура.................................................................................................

12

Разветвляющаяся структура ...................................................................................

18

Циклическая структура ...........................................................................................

25

Заключение..................................................................................................................

 

32

Библиографический список.......................................................................................

33

Приложение А –

Индивидуальные задания для алгоритмов линейной

 

 

структуры......................................................................................

34

Приложение Б –

Индивидуальные задания для алгоритмов разветвляющейся

 

 

структуры.......................................................................................

47

Приложение В –

Индивидуальные задания для алгоритмов циклической

 

 

структуры.......................................................................................

63

4

Предисловие

Государственными образовательными стандартами высшего профессиональ-

ного образования для экономических специальностей предусмотрено изучение в вузах алгоритмизации и технологий программирования с использованием язы-

ков программирования высокого уровня.

В процессе занятий со студентами становится очевидным, что выпускники общеобразовательных учебных заведений плохо знают указанные разделы ин-

форматики [ 8 ]. Поэтому объективной необходимостью становится ознакомле-

ние студентов с основами алгоритмизации и программирования. Настоящее по-

собие ориентировано на решение данной задачи и включает в себя начальные сведения об алгоритмизации и основах программирования на языке высокого уровня VBA (Visual Basic for Application).

Более подробные сведения о технологиях программирования и конструкциях языка при необходимости можно найти в книгах [ 1 – 3, 9 – 11]. Основы работы с редактором Visual Basic в среде MS Excel рассмотрены в методических указа-

ниях [5 – 7].

Пособие включает индивидуальные задания для студентов по трём темам – алгоритмы линейной, разветвляющейся и циклической структуры (Приложения А – В). При выполнении каждого задания следует представить алгоритм в гра-

фической форме (блок-схема) и составить программный код для решения по-

ставленной задачи. Обязательным условием является проверка правильности ра-

боты программного кода при различных значениях исходных данных.

При выполнении заданий необходимо соблюдать следующие требования.

1. В задании для алгоритма линейной структуры (Приложение А) расчёты должны осуществляться двумя способами:

с помощью процедуры Sub с выводом сообщений и полученных результатов в диалоговых окнах [ 5 ];

с помощью созданной пользовательской функции с выводом результата в

ячейку рабочего листа MS Excel [ 6 ].

2. В задании для алгоритма разветвляющейся структуры (Приложение Б)

ввод исходных данных для решения задачи и вывод результатов расчётов долж-

ны производиться с помощью пользовательской формы [ 7 ].

3. В задании для алгоритма циклической структуры (Приложение В) исход-

ные данные могут вводиться произвольным способом, все полученные результа-

ты следует вывести в ячейки рабочего листа MS Excel.

5

Введение

Специалисты экономических профессий, выполняющие расчёты, построение диаграмм, обработку данных в среде MS Excel, в основном работают в рамках привычных для них технологий, основывающихся на использовании стандарт-

ной системы меню и обычного набора панелей инструментов. Многие, даже ква-

лифицированные пользователи, не подозревают, что MS Excel позволяет созда-

вать сложные пользовательские приложения, предназначенные для решения разнообразных, в том числе, уникальных задач.

Этот процесс реализуется с помощью объектно-ориентированного языка программирования высокого уровня VBA (Visual Basic for Application), который встроен не только в MS Excel, но и во все другие приложения MS Office (MS Word, MS PowerPoint, MS Access и т. д.) [ 4 ].

VBA входит в семейство языков программирования Basic. Поэтому он на-

следует многие черты, базовые принципы построения, конструкции таких язы-

ков как GWBasic, QBasic, QuickBasic и т. д. Это в какой-то мере определяет це-

лесообразность изучения в вузе именно данного языка, так как часть студентов знакомилась с основами программирования в общеобразовательных учебных за-

ведениях с помощью одной из перечисленных версий языка Basic.

Кроме того, VBA предоставляет пользователю комфортные условия для про-

ектирования, отладки и тестирования программного кода с помощью интегриро-

ванной среды разработки – редактора Visual Basic [ 5 – 7 ].

Использование VBA для решения прикладных задач в принципе изменяет содержание программирования. Совсем недавно под программированием пони-

малось лишь создание новых компьютерных программ, сейчас, в рамках офис-

ного программирования – создание документов (например, рабочих книг MS Excel), частью которых является программный код.

Все создаваемые программные компоненты документа объединяются в еди-

ное целое, называемое «проектом». Проект является частью документа, хранится вместе с документом и не существует отдельно от него.

В рамках VBA используется модульный принцип программирования. Он за-

ключается в разбиении сложных задач на несколько более простых подзадач,

реализуемых с помощью процедур (их программный код обычно имеет неболь-

шие размеры). В проекте должна быть как минимум одна главная (вызывающая)

процедура, которая при необходимости обращается к другим процедурам и за-

пускает их на выполнение.

6

Этапы решения вычислительных задач на ЭВМ

В процессе решения прикладных (в том числе и экономических) вычисли-

тельных задач на ЭВМ выделяют несколько этапов.

1. Постановка задачи. Формулируются цели, условия и ограничения задачи,

определяются состав необходимых для решения задачи исходных данных, их структура, типы, допустимые значения. Формируются пожелания об оптималь-

ных формах представления и составе получаемых результатов.

2. Анализ задачи, построение её модели. Рассматриваются существующие аналоги поставленной задачи. Разрабатывается математическая модель, вклю-

чающая совокупность формул и соотношений, связывающих между собой ис-

ходные данные, промежуточные и конечные результаты.

3. Разработка алгоритма. Выбирается технология создания алгоритма.

Процесс решения задачи представляется в виде последовательности точно опре-

делённых действий (операций), выполнение каждого из которых может быть реализовано на компьютере.

4. Составление программы для ЭВМ. Уточняются способы организации данных. Выбирается язык программирования, созданный ранее алгоритм запи-

сывается в виде программного кода.

5. Тестирование и отладка программы на ЭВМ. Выявляются и исправля-

ются синтаксические ошибки в программном коде, изучается правильность ра-

боты логической структуры программы, выполняются тестовые расчёты с по-

следующим анализом достоверности полученных при этом результатов. При необходимости выполняется оптимизация программного кода.

6.Выполнение расчётов на ЭВМ. На основе имеющихся исходных данных вычисляются результаты, перечень которых был определён на этапе постановки задачи.

7.Анализ полученных результатов. Результаты вычислений сравниваются

спредполагаемыми значениями рассматриваемых характеристик или, при нали-

чии такой возможности, с данными натурных измерений параметров исследуе-

мого процесса или явления. В случае выявления различий между ними, устанав-

ливаются их причины, при необходимости обеспечивается возврат к любому из ранее перечисленных этапов.

8. Сопровождение программы. Для созданных компьютерных программ,

алгоритмов, математических моделей разрабатывается документация, вклю-

чающая перечень действий по их применению и эксплуатации.

7

Алгоритмизация вычислительных процессов

Понятие алгоритма

Понятие алгоритма является одним из фундаментальных понятий информа-

тики. Слово алгоритм происходит от латинской формы написания имени узбек-

ского математика IX века Аль-Хорезми, сформулировавшего правила выполне-

ния четырёх арифметических действий в десятичной системе счисления.

В течение долгого времени понятие алгоритма использовали только матема-

тики; в дальнейшем это понятие стало применяться в любых сферах человече-

ской деятельности для обозначения цепочки операций, приводящих к решению некоторой задачи (инструкции по применению бытовой техники, кулинарные рецепты и т. д.).

Таким образом, алгоритм представляет собой конечную последовательность точно определённых действий, приводящих к однозначному решению постав-

ленной задачи для некоторого класса однотипных задач.

Алгоритм должен разрабатываться так, чтобы при его формальном исполне-

нии (не вникая глубоко в содержание алгоритма) можно было получить требуе-

мый результат.

Разработка алгоритма решения вычислительной задачи на ЭВМ предполага-

ет представление процесса её реализации в виде последовательности элементар-

ных действий, которые могут быть выполнены на компьютере.

Основные свойства алгоритма

Алгоритм должен обладать следующими основными свойствами:

1) дискретностью – выполнение алгоритма разбивается на последователь-

ность законченных действий – шагов. Каждое действие должно быть завершено исполнителем прежде, чем он перейдёт к выполнению следующего действия;

2)определённостью (детерминированностью) – применение алгоритма к одним и тем же исходным данным должно приводить к одному и тому же результату;

3)массовостью – алгоритм должен разрабатываться в общем виде так, что-

бы его можно было применить для целого класса задач, различающихся лишь исходными данными;

4) результативностью – исполнение алгоритма сводится к выполнению ко-

нечного числа действий и всегда приводит к некоторому результату.

8

Формы представления алгоритмов

Алгоритм может быть представлен в следующих основных формах:

1)словесной (например, на естественном языке – в вербальной форме);

2)табличной (непосредственно в таблице с исходными данными для реше-

ния задачи приводятся указания, какие действия и в каком порядке следу-

ет выполнять с этими данными);

3)графической (в виде блок-схем).

Представление алгоритмов в графическом виде

Достоинством графической формы изображения алгоритмов является её на-

глядность. Схема алгоритма представляется в виде блоков стандартного вида

(основные типы блоков приводятся в таблице 1), соединённых между собой ли-

ниями, указывающими направление процесса обработки.

Таблица 1 – Основные блоки для представления алгоритмов в графическом виде

Название блока

Изображение блока

Назначение блока

 

 

 

 

 

Процесс

 

 

 

Вычислительное действие или

 

 

 

 

 

 

 

последовательность таких

 

 

 

 

действий

 

 

 

 

 

 

 

 

 

Решение

 

 

 

Проверка условия и выбор

 

 

 

 

дальнейшего направления

 

 

 

 

решения

 

 

 

 

 

Модификация

 

 

 

Начало цикла

Данные

 

 

 

Ввод исходных данных и вы-

 

 

 

 

вод полученных результатов

 

 

 

 

 

Терминатор

 

 

 

Начало или конец алгоритма

 

 

 

 

 

Предопределённый

 

 

 

Вычисления по подпрограмме

 

 

 

процесс

 

 

 

 

 

 

 

 

 

9

Внутри блоков в компактном виде записывается поясняющий текст. При не-

обходимости блоки могут нумероваться, номера проставляются в левом верхнем углу блоков.

Если переход между блоками выполняется в направлениях справа налево или снизу вверх, соединительные линии обязательно дополняются стрелками,

указывающими направление перехода. При переходах слева направо или сверху вниз использовать стрелки необязательно.

Типы алгоритмических структур

Основными типами алгоритмических структур являются линейная, разветв-

ляющаяся и циклическая структуры.

Линейная структура предполагает однократное выполнение некоторой по-

следовательности шагов (рисунок 1):

Вход

Действие 1

Действие 2

Действие 3

Выход

Рисунок 1 – Блок-схема алгоритма линейной структуры

Разветвляющаяся структура также предполагает однократное выполнение некоторой последовательности шагов, однако состав этой последовательности определяется результатами проверки некоторого условия. Каждое из возможных направлений решения называется ветвью. В общем случае количество ветвей может быть достаточно большим, но в большинстве алгоритмов оно ограничи-

вается двумя ветвями (рисунок 2). Если «Условие» выполняется, реализуется

«Действие 1», если нет – « Действие 2» (рисунок 2):

10

 

 

 

 

Вход

 

 

 

 

 

 

 

 

 

 

Да

 

 

 

 

 

 

 

 

 

 

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Условие

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Действие 1

 

 

 

Действие 2

 

 

 

 

 

 

 

 

 

 

Выход

Рисунок 2 – Блок-схема разветвляющегося алгоритма

В частном случае одна из выбранных ветвей может не предусматривать вы-

полнения каких-либо действий.

Циклическая структура обеспечивает многократное выполнение одной и той же последовательности шагов (тела цикла) при изменяющихся данных.

В зависимости от решаемой задачи можно организовать выполнение цикла различными способами.

Если количество повторений тела цикла известно в явном или неявном виде,

удобно использовать алгоритм (рисунок 3):

Вход

Счётчик

Тело цикла

Выход

Рисунок 3 – Блок-схема циклического алгоритма со счётчиком

В рамках этого алгоритма с помощью счётчика подсчитывается количество выполненных повторений тела цикла. Как только оно превышает некоторое за-

данное значение, выполнение цикла прекращается и процесс продолжается со следующего за циклом блока алгоритма (рисунок 3).