Реферат: Решение экономических задач с помощью VBA
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 – переменная цикла используется в добавлении записей в БД при поиске пустого поля
l1 – метка на которую ссылается оператор Goto
В программе происходит переход на метку в том случае если при заполнении данных пользователь забыл ввести фамилию по которой в программе определяется пуста запись или нет.
2.2 Входные и выходные данные
1) Задания на вычисление коммисионных, иполучения
премий (1-е и 2-е задания)
Входными данными в этом типе заданий являются исходные таблицы с данными о доходах магазинов за указанные месяцы, а также сумма доходов по месяцам. В программе эти значения присваиваются различным переменным при помощи обьекта
WorkSheets(“<Лист>”).Range(“<Ячейка>”).Value
Выходными данными являются премиальные полученные
в результате вычислений в соответствии с условием задания.
2)Составление ведомости расчета прибыли от
товара.
Входными данными являются 9 различных видов цен на 5 комплектующих в соответствии с условием, а также значения цен на товар до комплектации.
Выходными данными являются значения сумм цен комплектующих, т.е. цены на товар, а также определение максимальной и минимальной цены на товар определяемого не только по стоимости на товар в целом, но и по стоимости комплектующих по отдельности.
3) Модель управления запасами
Входными данными в задаче являются цена продажи журналов, цена покупки и издательства продавцом, и
цена возврата в случае нереализации товара продавцом, также известно количество реализуемых за раз продавцом пачек, и число событий за отчетный период времени.
Выходными данными в задаче являются значения максимальной прибыли и оптимального обьема продаж, которые в прогремме выводятся при помощи диалогового окна.
4) Задача об оптимальных капиталовложениях
В этой задаче входными данными являются значения мат. ожиданией прибыли как ф-ций капиталовложений, в соств. с условием 6 филиалов и 7 млн. грв.
Выходными данными являются таблица где производится: оптимальное распределение средств, когда А млн. вкладываются в 1-й и 2-й филиалы вмесле, оптимальное распределение средств, когда А млн. вкладываются в 1-й,2-й и 3-й филиалы вмесле, оптимальное распределение средств, когда А млн. вкладываются в 1-й,2-й,3-й,4-й филиалы вмесле,и оптимальное распределение средств, когда А млн. вкладываются в 1-й,2-й,3-й,4-й и 5-й филиалы вмесле и 1-й,2-й,3-й,4-й,5-й и 6-й.
Из этой таблицы находится максимальная ожидаемая прибыль в данном случае равная 1,01 млн. и оптимальные капиталовложения, из таблицы видно, сколько млн. и в какие филиалы нужно вложить:
6 филиал – 2 млн.
5 филиал – 1 млн.
6 филиал – 1 млн.
6 филиал – 1 млн.
6 филиал – 1 млн.
6 филиал – 1 млн.
5) Задание на нахождение оптимального раскроя
Входными данными являются значения заказанных длин и их кол-ва, а также значение стандартной длины.
Выходными данными будут значения отходов при всех вариантах раскроя рассмотренных при решении задачи, и суммарное кол-во отходов которые по условию задачи необходимо минимизировать.
6) База данных
Сдесь входные данные являются выходными, т.е что пользователь ввел то и отобразится в таблице. База данных содержит слежующие поля:
2 поля ввода: Фамилия, имя
3 раскрывающихся списка: Работа,Стаж,Рабочий день (час)
2 Группы по 2 флажка: Кредитная карточка, загран. Паспорт
2 группы по 2 переключателя: Пол,Семейное положение
3 поля ввода со счетчиками: Возвраст,Оклад,отпуск
2.3 Подробное описание задач
2.3.1 Начисление премии в виде коммисионных и дополнительной оплаты.
Создаем таблицу начисления премий, в ячейки B4:D10 заносим значения доходов магазинов за указанные месяцы, сбоку в ячейках A4:A10 будут располагаться названия месяцев, согласно варианту – с ноября по май, а в B3:D3 – магазины, таким образом на пересечении будет показана величина дохода магизина который находится в этом столбце и месяца который расположен в этой строке.
В ячейке B11 считаем доход 1-го магазина за все месяцы по формуле =СУММ(B4:B10), и растягиваем маркер чертежа до ячейки D10, таким образом производится подсчет доходов всех магазинов за все месяцы.
Определяем какие же из доходов магазинов превышают 1490.00 грв. , для которых входят в это число премиальные будут составлять в соответствии с условием 2% от дохода за эти месяцы, остальные эл-ты в массиве специально заполняются нулями.
Do
k = mas1(i)
If k > 1490 Then mas2(i) = mas1(i) Else mas2(i) = 0
i = i + 1
Loop Until i = 4
В этом цикле в массив заносятся только те значения которые превышают заданное по условию значение допустимости, в данном случае это 1490,00 руб.
Теперь доходы среди оставшихся магазинов нужно распределить по убыванию, для того, чтобы в соответствии с условием начислить магазинам дополнительные премиальные за 1-е, 2-е, 3-е место. Для этого выбираем следующий алгоритм: находим максимум среди этих доходов и назначаем этому магазину соответствующую 1-му месту премию, замем выбираем максимум из доходов не учитывая уже сужествующий (т.е. не учитывая первый максимум), и назначает этому магазину соотв. 2-му месту премию и т.д.
Do
i = i + 1
If mas2(i) > Max Then
Max = mas2(i)
indm = i
End If
Loop Until i = 3
Складываем полученные 2% с теми что начисляются дополнительно за 1,2,3 и т.д места, и заносим резельтаты в таблицу в строку “Премиальные”
Worksheets([лист]).Cells([координаты ячеек]).Value = Max * 0.02 + Max * 0.04
Месяц | М а г а з и н ы | ||
1 | 2 | 3 | |
Ноябрь | 100 | 100 | 120 |
Декабрь | 300 | 150 | 650 |
Январь | 1000 | 130 | 250 |
Февраль | 1000 | 120 | 50 |
Март | 0 | 100 | 760 |
Апрель | 100 | 100 | 0 |
Май | 310 | 600 | 500 |
Всего | 2810 | 1300 | 2330 |
Премиальные! | 168,6 | 0 | 93,2 |
2.3.2 Начисление премии по определенным условиям