МИНИСТЕРСТВО ОБРАЗОВАНИЯ УКРАИНЫ
КАФЕДРА ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ ЭВМ
1РЕШЕНИЕ ЭКОНОМИЧЕСКИХ ЗАДАЧ С ПОМОЩЬЮ VBA
Курсовая работа
по дисциплине «Матем. моделирование информационных систем »
Пояснительная записка
РЕФЕРАТ
Данная курсовая работа носит название “Решение экономических задач с помощью Visual Basic for Application”.
При написании курсовой работы преследовалась
цель получения практических навыков решения экономических задач спомощью VBA. Если говорить подробнее то был описаны способы решения следующих задач: начисление премии в виде коммисионных и дополнительной оплаты, начисление премиальных по определенным условиям, модель управления запасами, задача об оптимальных капиталовложениях, задачи на построение матрицы и вычисление суммы, нахождение бумажного раскроя и база данных.
Пояснительная записка к курсовой работе состоит из листов, и разделяется на 4 основные части:
1) теоретические сведения в применении к решению 8 поставленных задач курсовой работы
2) описание алгоритмов решения поставденных задач
3) программа созданная в среде Microsoft Excel 97 SR-1 в макросах на обьектно-ориентированом языке высокого уровня Microsoft Visual Basic
4)подробное описание модулей и макросов состовляющих в совокупности единый документ Kurs размером 202,101 байт.
СОДЕРЖАНИЕ
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Теоретические сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Функция пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Переменные и постоянные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Стандартные ф-ции пользователя для работы с массивами и матрицами
1.4 Обьекты, св-ва и методы VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Операторы цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Описание программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Описание переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Входные и выходные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Подробное описание задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Начисление премии в виде коммисионных и дополнительной
оплаты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Начисление премиальных по определенным условиям . . . . . . . . . . . .
2.3.3 Составление ведомости расчета прибыли то товара . . . . . . . . . . . . . . .
2.3.4 Модель управления запасами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.5 Определение оптимальных капиталовложенией . . . . . . . . . . . . . . . .
2.3.6 Нахождение оптимального раскроя . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.7 База данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Список используемых источников . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ПРИЛОЖЕНИЕ 1: Программа на языке Microsoft Visual Basic . . . . . . . . . . .
ВВЕДЕНИЕ
Задачей данной курсовой работы является составление документа в среде Microsoft Excel включающего в себя программы написанные на языке Microsoft Visual Basic решающие 8 поставленных задач, а именно начисление премии в виде коммисионных и дополнительной оплаты, начисление премиальных по определенным условиям, модель управления запасами, задача об оптимальных капиталовложениях, задачи на построение матрицы и вычисление суммы, нахождение бумажного раскроя и база данных.
В пояснительной записке описаны алгоритмы решения задач, подробное описание всех макросов и модулей используемых в программе, другими словами приведены описания входных и выходных данных документа, описание наиболее важных переменных используемых в программе.
Если говорить о среде написания программ для решения поставленных задач - Microsoft Visual Basic for Application – то это сочетание одного из самых простых языков программирования и всех вычислительных возможностей такой многогранной системы как Excel. С помощью VBA можно легко и быстро создавать разнообразные приложения даже не являясь специалистом в области программирования. VBA содержит относительно мощную графическую среду, позволяющую наглядно конструировать экранные формы и управляющие эл-ты. В общем Visual Basic for Application позволяет с легкостью решать многие задачи.
1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ В ПРИМЕНЕНИИ К РЕШЕНИЮ
ПОСТАВЛЕННЫХ ЗАДАЧ
1.1 функция пользователя
Функция пользователя создается на рабочем листе с названием модуль VBA, после чего с ними можно работать с помощью мастера функций. Для создания модуля VBA необходимо щелкнуть правой кнопкой мыши на ярлык листа, перед которым нужно разместить данный модуль, и из раскрывающегося контекстного меню выбрать команду “Вставка” (Insert). На вкладке “Общие”(General) необходимо выбрать тип листа – Модуль (Module). После нажатия кнопки OK произойдет вставка листа модуля. Теперь на листе модуля можно ввести текст программы
Если нужно создать макрос в программе нужно зайти в среду Microsoft Visual Basic по средствам нажатия комбинации клавиш Alt+F11, затем зайти в меню “Сервис”, далее в подменю “Макросы” и ввести имя макроса, если во время выполнения был выделен какой-то модуль то программый код созданного макроса появится именно в нем
Sub New_Macros()
; in Module 1
End Sub
1.2 Переенные и постоянные
Все переменные в VBA имеют тип. Тип указывает что может хранить переменная: целое число, строку, дату и т.д.
Тип данных | Занимаемый размер памяти | Диапазон |
BooleanInteger LongDate Array ObjectString CurrencyVariant | 2 bytes2 bytes 4 bytes8 bytesЗависит от размера и типа эл-тов 4 10+длина строки8 Зависит от содержимого переменной | True/False-32768 до32768 -2,147,483,648 до2,147,483,648 От 1 января до 31 дакабряЛюбой определенныйОбьектОт 0 да 2Х10^9 |
1.3 Стандартные ф-ции пользователя для работы с массивами и матрицами
Используются следующие ф-ции рабочего листа для работы с массивами:
Count Кол-во чисел в массиве
CountA Кол-во эл-тов массива
Sum Сумма эл-тов массива
SumProduct Сумма произведений эл-тов массивов
SumSQ Сумма квадратов эл-тов массива
SumVmY2 Сумма квадратов разностей эл-тов 2-х
массивов
SumX2mY2 Сумма разностей квадратов эл-тов 2-х
массивов
Используются следующие ф-ции рабочего листа для работы с матрицами:
Mmult – произведение 2-х матриц
Minverse – обратная матрица
Transpose – транспонированная матрица
MdeTerm – определитель матрицы
1.4 Обьекты, св-ва и методы VBA
Одним из основных понятий VBA является – обьект.
Обьект содержит список методов которые к нему применимы, а методы – это то , что можно с обьектом делать, таким образом обьект – это программный эл-т
который имеет свое отображение на экране, содержит некоторые переменные, определяющие его св-ва, и некоторые методы для управления обьектом. В VBA существует множество встроенных обьектов, например:
Range – диапазон ячеек (может включать только 1 ячейку)
Cells – координаты ячейки
Sheet – лист
WorkSheets – рабочий лист
DialogSheets – диалоговое окно
Большинство обьектов принадлнжит к группе подобных обьектов. Эти группы называются наборами. Например, все рабочие листы рабочей книги образуют набор называемый WorkSheets
Синтаксис установки значения св-ва обьекта имеет следующий вид:
Обьект.Свойство=Выражение
Например,
WorkSheets(”List1”).Range(“W1”).Value=999
1.5 Операторы цикла
1) Для многократного выполнения одного оператора или группы операторов служит оператор цикла FOR..NEXT
Синтаксис:
For Счетчик = Нач. знач. TO конечное знач. STEP
. . .
NEXT Счетчик
2) Цикл Do..While
Do While условие
<Блок операторов>
Loop
3) Цикл Do..Until
Do
<Блок операторов>
Loop Until условие
2. ОПИСАНИЕ ПРОГРАММЫ
2.1 Описание переменных
1) Задания на вычисление коммисионных, иполучения
премий (1-е и 2-е задания)
MAS1(3) – массив из 3-х эл-тов в который заносятся значения доходов магазинов за указанные месяцы
MAS2(3) – массив в который заносятся доходы только тех магазинов доход которых превышает 1490,00 грв.
MAS_I1(3) – массив индексов
B,C,D - вспомгательные переменные
I – переменная цикла
Max – переменная при помощи которой находится максимальное значение в массиве доходов(сначала этой переменной специально присваивается очень маленькое значение)
Indm, Indm2, Indm3 – индексы эл-тов массива которые являются максимумами если исключить предыдущий найденный максимум, например сначала максимумом является Indm, затем находится максимум из оставшихся и т.д.
2)Составление ведомости расчета прибыли от
товара.
Для определения максимумов для каждого варианта стоимости товара полученные суммы находящиеся в ячейках (b3:f11) заносятся в массив АА_2(5), для отображения в ведомости максимальной и минимальной цены на товар.
Массивы MM_1(9) .. MM_6(9) используются для отображения минимальных цен на каждый товар по всем вариантам продаж.
3) Модель управления запасами
Ф-ция пользователя CALC вычисляющая финансовые исходы при всевозможных вариантах событий покупки журналов и их реализации. В ф-ции используются следующие переменные: Цена_покупки, Цена_продажи, Цена_Возврата; i,j –переменные циклов. NROWS,ROWS – переменные типа Integer. Res() – массив того же типа переменной длины.
4) Задача об оптимальных капиталовложениях
К – переменная типа Integer, отвечает за количество капиталовложений в млн. грв.
R() – массив переменной длины, в программе используется как прибыль от вложения i млр. в j-тый филиал, где в R[i,j] - i(1..7), а j(1..6)
I,j,p – переменные циклов.
5) Задание на нахождение оптимального раскроя
Для построения математической модели в программе производится перебор всевозможных вариантов раскроя рулона стандартной длины на рулоны требуемой для этого в программе используются следующие переменные:
i1,i2,i3,i4 – переменные циклов
a1,a2,a3,a4 – переменные которым присваиваются значения заказанных длин рулонов.
t – переменная которой ф-ция Floor возвращает наибольшее целое число, не превышающее данное.
M – минимум среди заказанных длин
6) База данных
i – переменная цикла используется в добавлении записей в БД при поиске пустого поля