МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ p>
КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЕОМ p>
РІШЕННЯ ЕКОНОМІЧНИХ ЗАДАЧ ЗА ДОПОМОГОЮ VBA p>
Курсова робота p>
з дисципліни «матем . моделювання інформаційних систем » p>
Пояснювальна записка p>
РЕФЕРАТ p>
Дана дипломна робота має назву" Рішення економічних задач здопомогою Visual Basic for Application ". p>
При написанні курсової роботи переслідуваласямета отримання практичних навичок вирішення економічних завдань спомощью
VBA. Якщо говорити докладніше то був описані способи вирішення наступнихзавдань: нарахування премії у вигляді Комісійні та додаткової оплати,нарахування преміальних за визначеними умовами, модель управліннязапасами, задача про оптимальні капіталовкладеннях, задачі на побудовуматриці та обчислення суми, знаходження паперового розкрою і база даних. p>
Пояснювальна записка до курсової роботи складається з листів, іподіляється на 4 основні частини:
1) теоретичні відомості в застосуванні до вирішення поставлених завдань 8курсової роботи
2) опис алгоритмів рішення поставденних завдань
3) програма створена в середовищі Microsoft Excel 97 SR-1 в макроси наоб'єктно-орієнтованої мовою високого рівня Microsoft Visual Basic
4) детальний опис модулів і макросів складових у сукупностієдиний документ Kurs розміром 202,101 байт. p>
ЗМІСТ p>
Введення. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
1. Теоретичні відомості. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . p>
1.1 Функція користувача. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . p>
1.2 Змінні і постійні. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
1.3 Стандартні ф-ції користувача для роботи з масивами і матрицями
1.4 Об'єкти, св-ва і методи VBA. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
1.5 Оператори циклу. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . p>
2. Опис програми. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . p>
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 База даних. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Список використаних джерел. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . p>
ДОДАТОК 1: Програма мовою Microsoft Visual Basic. . . . . . . . .
. . p>
ВСТУП p>
Завданням даної курсової роботи є складання документа в середовищі
Microsoft Excel що включає в себе програми написані на мові Microsoft
Visual Basic вирішальні 8 поставлених завдань, а саме нарахування преміїу вигляді Комісійні та додаткової оплати, нарахування преміальних за визначеними умовами, модель управління запасами, задача прооптимальних капіталовкладеннях, завдання на побудову матриці іобчислення суми, знаходження паперового розкрою і база даних. p>
У пояснювальній записці описані алгоритми рішення задач, докладнийопис всіх макросів і модулів використовуються у програмі, іншими словаминаведені описи вхідних та вихідних даних документа, опис найбільшважливих змінних використовуються у програмі. p>
Якщо говорити про середовище написання програм для вирішення поставленихзавдань - Microsoft Visual Basic for Application - то це поєднання одного знайпростіших мов програмування і всіх обчислювальних можливостейтакої багатогранної системи як Excel. За допомогою VBA можна легко і швидкостворювати різноманітні програми навіть не будучи фахівцем в областіпрограмування. VBA містить відносно потужну графічну середу,дозволяє наочно конструювати екранні форми та керуючі ел-ти. УЗагалом Visual Basic for Application дозволяє з легкістю вирішувати багатозавдання. p>
1. ТЕОРЕТИЧНІ ВІДОМОСТІ У ЗАСТОСУВАННЯ ДО ВИРІШЕННЯ p>
поставлених завдань p>
1.1 функція користувача p>
Функція користувача створюється на робочому аркуші з назвою модуль
VBA, після чого з ними можна працювати за допомогою майстра функцій. Длястворення модуля VBA необхідно натиснути правою кнопкою миші на ярлик аркуша,перед яким потрібно розмістити даний модуль, і з розкривногоконтекстного меню вибрати команду "Вставка" (Insert). На вкладці
"Загальні" (General) необхідно вибрати тип листа - Модуль (Module). Післянатискання кнопки OK відбудеться вставка листа модуля. Тепер на аркуші модуляможна ввести текст програми p>
Якщо потрібно створити макрос в програмі потрібно зайти в середу Microsoft
Visual Basic по засобах натискання комбінації клавіш Alt + F11, потім зайти вменю "Сервіс", далі в підменю "Макрос" і ввести ім'я макросу, якщо підчас виконання був виділений якийсь модуль то програма код створеногомакросу з'явиться саме в ньому p>
Sub New_Macros () p>
; in Module 1 p>
End Sub p>
1.2 Переенние і постійні p >
Всі змінні в VBA мають тип. Тип вказує що може зберігатимінлива: ціле число, рядок, дату і т.д. p>
| Тип даних | займаний розмір пам'яті | Діапазон |
| Boolean | 2 bytes | True/False |
| Integer | 2 bytes | -32768 до32768 |
| Long | 4 bytes | -2,147,483,648 до |
| | | 2,147,483,648 |
| Date | 8 bytes | |
| | | Від 1 січня до 31 |
| Array | Залежить від розміру і типу ел-тів | дакабря |
| Object | 4 | |
| String | 10 + довжина рядка | Будь-який визначений |
| Currency | 8 | Об'єкт |
| Variant | Залежить від вмісту змінної | Від 0 та 2х10 ^ 9 | p>
1.3 Стандартні ф-ції користувача для роботи з масивами і матрицями p>
Використовуються такі ф-ції робочого листа для роботи з масивами: p>
Count Кількість чисел в масиві p>
CountA Кількість ел-тов масиву p>
Sum Сума ел-тов масиву p> < p> SumProduct Сума творів ел-тов масивів p>
SumSQ Сума квадратів ел-тов масиву p>
SumVmY2 Сума квадратів різниць ел-тів 2-х масивів p>
SumX2mY2 Сума різниць квадратів ел-тів 2-х масивів p>
Використовуються такі ф-ції робочого листа для роботи з матрицями: p>
Mmult - твір 2-х матриць p>
Minverse - обернена матриця p>
Transpose - транспонована матриця p>
MdeTerm - визначник матриці p>
1.4 Об'єкти, св-ва і методи VBA p>
Одним з основних понять VBA є - об'єкт.
Об'єкт містить список методів які до нього застосовні, а методи - це те
, Що можна з об'єктом робити, таким чином об'єкт - це програмний ел-тякий має своє відображення на екрані, містить деякі змінні,визначають його св-ва, і деякі методи для управління об'єктом. У VBAіснує безліч вбудованих об'єктів, наприклад: p>
Range - діапазон комірок (може включати тільки 1 осередок) p>
Cells - координати клітинки p>
Sheet - лист p>
WorkSheets - робочий лист p>
DialogSheets - діалогове вікно p>
Більшість об'єктів прінадлнжіт до групи подібних об'єктів. Ці групиназиваються наборами. Наприклад, всі робочі аркуші робочої книги утворюютьнабір званий WorkSheets p>
Синтаксис встановлення значення св-ва об'єкта має такий вигляд: p>
Обьект.Свойство = Вираз
Наприклад, p>
WorkSheets ( "List1"). Range ( "W1"). Value = 999 p>
1.5 Оператори циклу p>
1) Для багаторазового виконання одного оператора або групи операторівслужить оператор циклу FOR .. NEXT
Синтаксис:
For Лічильник = Поч. знач. TO кінцеве знач. STEP p>
. . .
NEXT Лічильник p>
2) Цикл Do .. While
Do While умова p>
Loop p>
3) Цикл Do .. Until
Do p>
Loop Until умова p>
2. ОПИС ПРОГРАМИ p>
2.1 Опис змінних p>
1) Завдання на обчислення Комісійні, іполученіяпремій (1-е і 2-е завдання) p>
MAS1 (3) - масив з 3-х ел-тів до якого заносяться значення доходівмагазинів за вказані місяці p>
MAS2 (3) - масив до якого заносяться доходи тільки тих магазинів дохідяких перевищує 1490,00 грв. p>
MAS_I1 (3) - масив індексів p>
B, C, D - вспомгательние змінні p>
I - мінлива циклу p >
Max - мінлива за допомогою якої знаходиться максимальне значеннямасиві доходів (спочатку цієї змінної спеціально присвоюється дужемаленьке значення) p>
Indm, Indm2, Indm3 - індекси ел-тов масиву які є максимумамиякщо виключити попередній знайдений максимум, наприклад спочатку максимумомє Indm, потім знаходиться максимум з решти і т.д. p>
2) Складання відомості розрахунку прибутку відтовару. p>
Для визначення максимумів для кожного варіанту вартості товаруотримані суми знаходяться в комірках (b3: f11) заносяться в масив АА_2 (5),для відображення у відомості максимальної та мінімальної ціни на товар.
Масиви MM_1 (9) .. MM_6 (9) використовуються для відображення мінімальних цінна кожний товар по всіх варіантів продажу. p>
3) Модель управління запасами p>
Ф-ція користувача CALC обчислює фінансові результати за всіх можливихваріантах подій покупки журналів та їх реалізації. У ф-ції використовуютьсянаступні змінні: Цена_покупкі, Цена_продажі, Цена_Возврата; i, j
-Змінні циклів. NROWS, ROWS - змінні типу Integer. Res () - масивтого ж типу змінної довжини. p>
4) Задача про оптимальні капіталовкладеннях p>
К - змінна типу Integer, відповідає за кількість капіталовкладень вмлн. грв. p>
R () - масив змінної довжини, у програмі використовується як прибуток відвкладення i млр. в j-тий філія, де в R [i, j] - i (1 .. 7), а j (1 .. 6) p>
I, j, p - змінні циклів. p >
5) Завдання на знаходження оптимального розкрою p>
Для побудови математичної моделі в програмі проводиться перебірвсіляких варіантів розкрою рулону стандартної довжини на рулони потрібноїдля цього в програмі використовуються наступні змінні: i1, i2, i3, i4 - змінні циклів a1, a2, a3, a4 - змінні яким присвоюються значення замовлених довжинрулонів. t - мінлива якій ф-ція Floor повертає найбільше ціле число, неперевищує дане.
M - мінімум серед замовлених довжин p>
6) База даних i - змінна циклу використовується в додаванні записів в БД при пошукупорожнього поля l1 - мітка на яку посилається оператор Goto
У програмі відбувається перехід на мітку в тому разі, якщо при заповненніданих користувач забув ввести прізвище за якою в програмівизначається порожній запис чи ні. p>
2.2 Вхідні та вихідні дані p>
1) Завдання на обчислення Комісійні, іполученіяпремій (1-е і 2-е завдання) p>
Вхідними даними в цьому типі завдань є вихідні таблиці зданими про доходи магазинів за вказані місяці, а також сума доходів замісяцях. У програмі ці значення присвоюються різним змінним придопомоги об'єкта p>
WorkSheets (""). Range (""). Value p>
Вихідними даними є преміальні отриманів результаті обчислень у відповідності з умовою завдання. p>
2) Складання відомості розрахунку прибутку відтовару. p>
Вхідними даними є 9 різних видів цін на 5 комплектуючих ввідповідно до умов, а також значення цін на товар до комплектації. p>
Вихідними даними є значення сум цін комплектуючих, тобто цінина товар, а також визначення максимальної та мінімальної ціни на товарвизначається не тільки за вартістю на товар в цілому, а й за вартістюкомплектуючих окремо. p>
3) Модель управління запасами p>
Вхідними даними в задачі є ціна продажу журналів, ціна купівлі тавидавництва продавцем, іціна повернення у разі нереалізації товару продавцем, також відомокількість реалізованих за раз продавцем пачок, і число подій за звітнийперіод часу. p>
Вихідними даними в задачі є значення максимального прибутку іоптимального обсягу продажів, які в прогремме виводяться за допомогоюдіалогового вікна. p>
4) Задача про оптимальні капіталовкладеннях p>
У цьому завданні вхідними даними є значення мат. очікування прибуткуяк ф-цій капіталовкладень, в соств. з умовою 6 філій та 7 млн. грв. p>
Вихідними даними є таблиця де виробляється: оптимальнерозподіл коштів, коли А млн. вкладаються в 1-й і 2-й філіївмесле, оптимальний розподіл коштів, коли А млн. вкладаються в 1 --й ,2-й і 3-й філії вмесле, оптимальний розподіл коштів, коли А млн.вкладаються в 1-й ,2-й ,3-й ,4-й філії вмесле, і оптимальний розподілкоштів, коли А млн. вкладаються в 1-й ,2-й ,3-й ,4-й і 5-й філії вмесле і
1-й ,2-й ,3-й ,4-й ,5-й і 6-й. P>
З цієї таблиці знаходиться максимальна очікуваний прибуток в даномувипадку дорівнює 1,01 млн. і оптимальні капіталовкладення, з таблиці видно,скільки млн. і в які філії потрібно вкласти: p>
6 філія - 2 млн. p>
5 філія - 1 млн. p>
6 філія - 1 млн.
6 філія - 1 млн. p>
6 філія - 1 млн. p>
6 філія - 1 млн. p>
5) Завдання на знаходження оптимального розкрою p>
Вхідними даними є значення замовлених довжин і їх кол-ва, а такожзначення стандартної довжини. p>
Вихідними даними будуть значення відходів при всіх варіантах розкроюрозглянутих під час розв'язання задачі, і сумарна кількість відходів які заумові задачі необхідно мінімізувати. p>
6) База даних p>
Сдесь вхідні дані є вихідними, тобто що користувач ввів тоі відображено в таблиці. База даних містить стежу поля:
2 поля вводу: Прізвище, ім'я
3 розкривних списку: Робота, Стаж, Робочий день (час)
2. Групи по 2 прапорці: Кредитна картка, загран. Паспорт
2 групи по 2 перемикача: Пол, Сімейний стан
3. поля введення з лічильниками: Возвраст, Оклад, відпустку p>
2.3 Детальний опис завдань p>
2.3.1 Нарахування премії у вигляді Комісійні тадодаткової оплати. p>
Створюємо таблицю нарахування премій, у клітинки B4: D10 заносимо значеннядоходів магазинів за вказані місяці, збоку в осередках A4: A10 будутьрозташовуватися назви місяців, відповідно до варіанту - з листопада по травень, а в
B3: D3 - магазини, таким чином на перетині буде показана величинадоходу магізіна який знаходиться в цьому стовпці й місяця якийрозташований в цьому рядку. p>
В осередку B11 вважаємо дохід 1-го магазину за всі місяці за формулою
= СУММ (B4: B10), і розтягуємо маркер креслення до комірки D10, таким чиномпроводиться підрахунок доходів всіх магазинів за всі місяці. p>
Визначаємо які ж з доходів магазинів перевищують 1490.00 грв. , Дляяких входять до цього числа преміальні становитимуть відповідно доумовою 2% від доходу за ці місяці, інші ел-ти в масиві спеціальнозаповнюються нулями. p>
Do k = mas1 (i) p>
If k> 1490 Then mas2 (i) = mas1 (i) Else mas2 (i) = 0 i = i + 1
Loop Until i = 4 p>
У цьому циклі в масив заносяться тільки ті значення які перевищуютьзаданий за умовою значення допустимості, в даному випадку це 1490,00 руб. p>
Тепер доходи серед залишилися закладів потрібно розподілити за спаданням,для того, щоб у відповідності з умовою нарахувати магазинахдодаткові преміальні за 1-е, 2-е, 3-е місце. Для цього вибираємонаступний алгоритм: знаходимо максимум серед цих доходів і призначаємо цьогомагазину відповідну 1-му місцем премію, замем вибираємо максимум здоходів не враховуючи вже сужествующій (тобто не з огляду на перший максимум), іпризначає цього магазину соотв. 2-му місцю премію і т.д. p>
Do i = i + 1 p>
If mas2 (i)> Max Then p>
Max = mas2 (i) indm = i p>
End If
Loop Until i = 3 p>
Складаємо отримані 2% з тими що нараховуються додатково за 1,2,3і т.д місця, і заносимо резельтати в таблицю в рядок "Преміальні" p>
Worksheets ([лист]). Cells ([координати осередків]). Value = Max * 0.02 + Max *
0.04 p>
| Місяць | М а г а з |
| | І н и |
| | 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, | 0 | 93,2 |
| | 6 | | | p>
2.3.2 Нарахування премії за визначеними умовами p>
Створюємо таблицю нарахування премій, заповнюємо її величинами доходів завказані місяці, і вважаємо суму доходів за всі місяці. Детальний описяк створювати таблицю і заповнювати її значеннями привілля в попередньомупункті. p>
Визначаємо які з отриманих сум доходів лежать у якій з 4-хзазначених в умові областей і заносимо рез-ти в таблицю в комірки B12: D12які відображають преміальні p>
Do i = i + 1
If AA_1 (i) <700 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value =
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.01
If AA_1 (i)> = 700 And AA_1 (i) <1400 Then Worksheets ( "Заданіе2"). Cells (12,i + 1). Value = Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.015
If AA_1 (i)> = 1400 And AA_1 (i) <2800 Then
Worksheets ( "Заданіе2"). Cells (12, i + 1). Value =
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.023
If AA_1 (i)> = 2800 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = < br>Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.025
Loop Until i = 3 p>
Отримана таблиця виглядає наступним чином: p>
| Місяць | М а г а з |
| | І н и |
| | 1 | 2 | 3 |
| Листопад | 50 | 100 | 120 |
| Грудень | 50 | 150 | 650 |
| Січень | 100 | 130 | 250 |
| Лютий | 100 | 120 | 50 |
| Березень | 120 | 100 | 760 |
| Квітень | 100 | 100 | 1000 |
| Травень | 50 | 600 | 500 |
| Усього | 570 | 1300 | 3330 |
| Преміальні! | 5,7 | 19,5 | 83,25 | p>
2.3.3 Складання відомості розрахунку прибутку від товару p>
Заповнюємо таблицю значеннями, як зазначено в умові т.е 5різновидів комплектуючих розташованих в клітинках B2: F2, і 9 варіантіввартостей комплек?? ующіх в комірках A3: A11. В осередках B3: F12 будерозташовуватися значення вартостей комплектуючих і вартості роботи докомплектації. p>
В осередках G3 за формулою = СУММ (B3: F3) вважається загальна вартість всіхкомплектуючих, розтягуємо маркер комірки G3 до комірки G11, і отримуємовартість всіх комплектуючих для всіх варіантів вартостей. p>
У програмі визначається яка деталь в якому місці сама дешовим,якщо не враховувати транспортні витрати і поставити собі за мету придбати деталі помінімальними цінами. Для цього в програмі визначаються мінімальні вартостіпо 5-ти деталям. p>
Отримана відомість буде виглядати наступним чином:
| Варіанти | В і д и к о м п л е к т | MIN/|
| | У ю щ и х | MAX |
| Вартість | 1-а | 2-га | 3-я | 4-я | 5-а | Усього | |
| і | деталь | деталь | деталь | деталь | деталь | о | |
| 1-й | 20 | 90 | 5 | 50 | 60 | 225 | |
| 2-й | 19 | 85 | 4 | 55 | 50 | 213 | |
| 3-й | 20 | 81 | 4 | 50 | 56 | 211 | Мінім. Ціна на |
| | | | | | | | Товар |
| 4-й | 25 | 87 | 8 | 57 | 58 | 235 | |
| 5-й | 29 | 87 | 5 | 55 | 60 | 236 | |
| 6-й | 18 | 88 | 4 | 40 | 61 | 211 | |
| 7-й | 30 | 99 | 9 | 66 | 60 | 264 | |
| 8-й | 30 | 99 | 9 | 66 | 64 | 268 | Макс. Ціна на |
| | | | | | | | Товар |
| 9-й | 21 | 90 | 6 | 54 | 55 | 226 | |
| До | 15 | 75 | 3 | 40 | 50 | 183 | |
| комплект | | | | | | | |
| родної асоціації | | | | | | | | p>
2.3.4 Модель управління запасами p>
Вводимо початкові значення, тобто значення покупки продавцем журналів,продажу цих журналів і повернення до друкарні у випадку не реалізаціїтовару. Введення всього цього виробляється в діалоговому вікні, якестворюється як UserForm зі спеціальними кнопками і полями введення покупкижурналів, продажу, та повернення до друкарню. Вікно введення виглядає так: p>
p>
Складаємо таблицю що складається з обсягу реалізації, числа подій, іімовірності цих подій, перші два нам дані за умовою а ймовірністьцих подій потрібно порахувати. Вводимо в комірку D7 наступну формулуобчислення ймовірностей (= D6/СУММ ($ D $ 5: $ I $ 5))і розтягуємо маркер до осередку I7. p>
У клітинках C10: H15 спомощью ф-ції користувача CALC Обчислюємо фінансовірезультати за всіх можливих варіанти подій покупки журналів та їх реалізації p>
Function CALC (buy As Variant) As Variant
Dim Цена_продажи, Цена_покупкі, Цена_возврата, NRows, i, j As Integer,
Result () As Integer
NRows = buy.Rows.Count
Цена_продажи = Range ( "a2"). Value
Цена_покупкі = Range ( "b2"). Value
Цена_возврата = Range ( "c2"). Value
ReDim Result (NRows, NRows)
For i = 1 To NRows
For j = 1 To NRows
If ij Then Result (i, j) = buy (j) * (Цена_продажи - Цена_покупкі) -
(buy (i) - buy (j)) * (Цена_покупкі - Цена_возврата)
Next j
Next i
CALC = Result
End Function p>
В осередках J11: J16 за допомогою формули (= МУМНОЖ (C10: H15; транспо (D7: I7)))знаходимо очікуваний прибуток, соответсввующую різних варіантів покупкижурналів. p>
У комірці F16 спомощью формули = найбільша (J11: J16; 1)обчислюємо максимальний прибуток. Її також можна знайти скориставшись ф -єю МАКС, знаходить максимальний ел-т зі списку p>
= Макс (J11: J16) p>
У комірці F17 за формулою = (ПОІСКПОЗ (найбільша (J11: J16; 1); J11 : J16; 0) -
1) * 5відповідний оптимальний обсяг покупок газет. Потім функція CALC виводитьці оптимальні значення у вікні повідомлень. p>
Ф-ція найбільший повертає К-е найбільше значення з безлічіданих. Ця ф-ція використовується для того, щоб вибрати значення за йоговідносного розташування. Наприклад, фунуцію НАЙБІЛЬШІ можнавикористовувати для того, щоб визначити найкращий, другий, третій результатв балах, показаний при тестуванні. Сістаксіс програми такий: p>
найбільша (масив; К) де Масив - це масив або діапазон комірок девизначається найбільше значення, к - позиція (починаючи з найбільшою) вмасиві або діапазоні. p>
Всі результати занесені в таблицю будуть виглядати наступним чином: p>
| | | П р о | | | |
| | | Д а ж | | | |
| | | А | | | |
| П | | 0 | 4 | 8 | 12 | 14 | 18 | | |
| о | 0 | 0 | 0 | 0 | 0 | 0 | 0 | покуп | Прибув |
| | | | | | | | | Ка | ь |
| к | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| | | | | | | | | | - Р. |
| у | 8 | 0 | -20 | 16 | 16 | 16 | 16 | 4 | |
| | | | | | | | | | - Р. |
| п | 12 | 0 | -40 | -4 | 32 | 32 | 32 | 8 | |
| | | | | | | | | | 12,94 р |
| | | | | | | | | |. |
| к | 14 | 0 | -60 | -24 | 12 | 48 | 48 | 12 | |
| | | | | | | | | | 16,88 р |
| | | | | | | | | |. |
| а | 18 | 0 | -70 | -34 | 2 | 38 | 56 | 14 | |
| | | | | | | | | | 9,00 р. |
| | | Максимальна | | | | 18 | |
| | | Прибуток | 16,88 | | | | 0,28 р. |
| | | | Р. | | | | |
| | | Оптимальний | 15 | | | | |
| | | Об'єм | | | | | | p>
2.3.5 Визначення оптимальних капіталовкладень p>
Створюємо вихідну таблицю і заповнюємо її мат. очікуваннями прибутків усостветствіі з умовою. p>
| | Ф е л | |
| | І а л | |
| | И | |
| Млн. | 1 | 2 | 3 | 4 | 5 | 6 |
| грв | | | | | | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,1 |
| | 11 | 2 | 8 | | 7 | 2 |
| 2 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,2 |
| | 11 | 3 | 8 | 2 | 7 | 3 |
| 3 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,2 |
| | 12 | 3 | 9 | 4 | 8 | 4 |
| 4 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,2 |
| | 12 | 3 | 9 | 6 | 8 | 4 |
| 5 | 0, | 0,1 | 0,2 | 0,2 | 0,1 | 0,2 |
| | 13 | 3 | | 9 | 9 | 5 |
| 6 | 0, | 0,1 | 0,2 | 0,3 | 0,1 | 0,2 |
| | 13 | 3 | | 1 | 9 | 5 |
| 7 | 0, | 0,1 | 0,2 | 0,3 | 0,2 | 0,2 |
| | 14 | 3 | | 3 | | 6 | p>
Для подальшого вирішення завдання, вводимо такі позначення: p>
Нехай R (i, j) - прибуток що отримується від вкладення i млн. грв. У j-тийфілія, де в соотв. З варіантом i від (0,7), а j від (0,6) p>
F (A, 1,2) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2 філії разом p>
F (A, 1,2,3) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3 філії разом p>
F (A, 1,2,3,4) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4 філії разом. p>
F (A, 1,2,3,4,5) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4,5 філії разом. p>
F (A, 1,2,3,4,5,6) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4,5 філії разом. p>
Значення I при яких досягається максимум визначають оптимальнікапіталовкладення у філії. p>
Максимальні значення очікуваних прибутків обчислюється в програмі ізаноситься в осередку H4: L11 і буде виглядати наступним чином: p>
| М а к с і | | |
| м у м и | | |
| 1 і | 1,2 | 1,2,3 | 1,2,3 | 1,2,3, |
| 2 | і 3 | і 4 |, 4 і | 4,5 та |
| | | | 5 | 6 |
| 0 | 0 | 0 | 0 | 0 |
| 0,12 | 0,1 | 0,2 | 0,2 | 0,2 |
| | 8 | | | |
| 0,23 | 0,3 | 0,38 | 0,38 | 0,38 |
| 0,24 | 0,4 | 0,5 | 0,55 | 0,55 |
| | 1 | | | |
| 0,24 | 0,4 | 0,61 | 0,67 | 0,67 |
| | 2 | | | |
| 0,25 | 0,4 | 0,63 | 0,78 | 0,79 |
| | 2 | | | |
| 0,25 | 0,4 | 0,65 | 0,8 | 0,9 |
| | 3 | | | |
| 0,26 | +0,4 | 0,67 | 0,82 | 1,01 |
| | 3 | | | | p>
У програмі змінної К - присвоюємо значення рівне обьемукапіталовкладень. У масив R з робочого листа капіталовкладення вводимоочікуваний прибуток, розподілену по філіях. p>
У діапазон комірок (B14: K22) виводиться оптимальний розподілкапіталовкладень по філіях. Після обчислень можна побачити щомаксімальния очікуваний прибуток становить 1,01 млн. грв. , З таблиці виднонаступні рез-ти: p>
6 філія - 2 млн. p>
5 філія - 1 млн. p>
4 філія - 1 млн. p>
3 філія - 1 млн. p>
2 філія - 1 млн. p>
1 філія - 1 млн. p>
Сама таблиця виглядає наступним чином: p>
| | Ф е л | | | |
| | І а л | | | |
| | И | | | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
| 2 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 0 | 2 | 0 |
| 3 | 1 | 2 | 2 | 1 | 2 | 1 | 2 | 1 | 3 | 0 |
| 4 | 1 | 3 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 |
| 5 | 3 | 2 | 2 | 3 | 3 | 2 | 4 | 1 | 4 | 1 |
| 6 | 3 | 3 | 3 | 3 | 3 | 3 | 5 | 1 | 4 | 2 |
| 7 | 5 | 2 | 2 | 5 | 3 | 4 | 6 | 1 | 5 | 2 |
| Млн. | 1 | 2 | 1,2 | 3 | 1,2 | 4 | 1,2, | 5 | 1,2,3 | 6 |
| грв. | | | | |, 3 | | 3 і | |, 4 та | |
| | | | | | | | 4 | | 5 | | p>
2.3.6 Завдання на знаходження оптимального розкрою p>
Складаємо таблицю в якій будуть приведені залишки від розкрою назамовлення при різних варіантах розкрою. p>
Наприклад за умовою у відповідності з варіантом стандартна довжинарозкрою дорівнює 28 метрів,тобто перший варіант розкрою буде сосотавлять 0 рулон дляніх 4 м, 0 рулонівдовжиною 6м і 4 рулону довжиною 9 м, рулонів завдовжки 11 м. не буде, що в сумідасть 27, отже відходи будуть становити 1 метр. Другий варіант коли
1 рулон за 6 м і два по 11 м, в цьому випадку залишків не буде і т.д. Всьоговиходить 19 варіантів розкрою. p>
У програмі це буде виглядати таким чином: p>
l = 28 a1 = 4: a2 = 6 a3 = 9: a4 = 11 r = 4 m = Application . Min (a1, a2, a3, a4) t = Application.Floor (l/m, 1) p>
For i1 = 0 To t p>
For i2 = 0 To t
For i3 = 0 To t p>
For i4 = 0 To ts = 28 - a1 * i1 - a2 * i2 - a3 * i3 - a4 * i4 p>
If s> = 0 And s Cells (r, 1). Value = r - 3 p>
Cells (r, 2). Value = i1 p>
Cells (r, 3). Value = i2 p>
Cells (r, 4). Value = i3 p>
Cells (r, 5). Value = i4 p >
Cells (r, 6). Value = sr = r + 1 p>
End If p>
Next i4 p>
Next i3 p> < p> Next i2 p>
Next i1 p>
На аркуші це буде виглядати так: p>
| Д л і н и р у л о н |
| о в н а з а к а з |
| Варіано | | | | | Залишок |
| нти | | | | | |
| Наклей і розфарбуй | 4 | 6 | 9 | 11 | від расктоя |
| Ойки | | | | | |
| 1 | 0 | 0 | 3 | 0 | 1 |
| 2 | 0 | 1 | 0 | 2 | 0 |
| 3 | 0 | 1 | 1 | 1 | 2 |
| 4 | 0 | 3 | 1 | 0 | 1 |
| 5 | 1 | 0 | 0 | 2 | 2 |
| 6 | 1 | 1 | 2 | 0 | 0 |
| 7 | 1 | 2 | 0 | 1 | 1 |
| 8 | 1 | 2 | 1 | 0 | 3 |
| 9 | 1 | 4 | 0 | 0 | 0 |
| 10 | 2 | 0 | 1 | 1 | 0 |
| 11 | 2 | 0 | 2 | 0 | 2 |
| 12 | 2 | 1 | 0 | 1 | 3 |
| 13 | 2 | 3 | 0 | 0 | 2 |
| 14 | 3 | 1 | 1 | 0 | 1 |
| 15 | 4 | 0 | 0 | 1 | 1 |
| 16 | 4 | 0 | 1 | 0 | 3 |
| 17 | 4 | 2 | 0 | 0 | 0 |
| 18 | 5 | 1 | 0 | 0 | 2 |
| 19 | 7 | 0 | 0 | 0 | 0 | p>
Нехай Xj - кількість стандартних рулонів, розрізають по варіанту j, деj [1 .. 19]. Обмеження накладаються на змінні Xj пов'язані з вимогоюзабезпечити виготовлення замовленого кол-ва нестандартних рулонів. Ф-ціямети враховує сумарні відходи, одержані під час виконання замовлення. Такимчином маємо наступну мат. модель: p>
Мінімізувати:
Z = x1 +2 x3 + x4 2 x5 + x7 3 x8 +2 x11 +2 x12 +2 x13 + x14 + x15 +3 x16 +
2 x18 + 4 (x5 + x6 + x7 + x8 + x9 +2 x10 +2 x11 +2 x12 +2 x13 +3 x14 +4 x15 +4 x16 +4 x17 5 ч18 7 x19-
220) + 6 (...- 210) +9 (...- 350) +
11 (...- 380) p>
Відведемо діапазон комірок (i4: i22) під змінні. Введемо в діапазоносередків (j3: m3) ліві частини обмежень, визначені стежу формулами: p>
= СУММПРОІЗВ ($ I $ 4: $ I $ 22; B4: B22) p>
= СУММПРОІЗВ ($ I $ 4: $ I $ 22; c4: c22) p>
= СУММПРОІЗВ ($ I $ 4: $ I $ 22; d4: d22) p>
= СУММПРОІЗВ ($ I $ 4: $ I $ 22; e4: e22) p>
У комірку N4 введемо ф-цію цілі:
= СУММПРОІЗВ ($ I $ 4: $ I $ 22; F4: F22) + B3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; B4: B22) -
J3) + C3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; C4: C22)-K3) + D3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; D4: D22) -
L3) + E3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; E4: E22)-M3) p>
де в осередку B3: E3 введені довжини, а в осередку J3: M3 - кол-ва замовленихрулонів p>
Виберемо команду сервіс - Пошук рішення і заповнимо відкрилосядіалогове вікно Пошук рішення (Solver): p>
- Встановимо цільову комірку - N4 p>
- Змінюючи клітинки I4: I22 p>
- Обмеження $ I $ 4: $ I $ 22 = ціле p>
$ I $ 4: $ I $ 22> = 0 p>
$ j $ 4: $ m $ 4> = $ j $ 3: $ m $ 3 p>
-- Ф-ція = мінімізація p>
| К о л - в а з а к а з а н и х р у л |
| о н о в |
| 220 | 210 | 35 | 38 | Відходи |
| | | 0 | 0 | |
| 220 | 210 | 35 | 38 | 49,99996 |
| | | 0 | 0 | | p>
2.3.7 База даних p>
Створимо поля бази даних, і занесемо їх у таблицю. База даних будезаповнюватися програмою, програмі не потрібні назви полів, але дляполегшення орієнтації в першому рядку введемо дані відповідають полям
БД p>
Створимо кнопку "Додавання" для додавання записів у БД, робиться цетак: Викликаємо панель інструментів на якій розташовані примітиви, тобтовікно вводу, кнопки і т.д. Створюємо на формі кнопку, і спомощью св-ва Captionприсвоюємо їй назву "Додавання" p>
Створимо макрос який буде відповідати за обробку подій після натисканняцієї кнопки. Перейдемо в середу Visual Basic for Application та в меню
«Вставка» виберемо UserForm, на цю форму і помістимо всі об'єкти обумовленів умові (m розкривних списків, n полів вводу, ...). p>
У макросі відповідальному за подія кнопки «Додати» введемо процедуруяка буде активізувати форму UserForm1, і заносити всі дані з вікнавведення в комірки аркуша A4: L4, A5: L5 і т.д.
При натисканні кнопки "OK" виконається наступний код програми: p>
Вікно введення виглядає наступним чином: p>
p>
Посібник/За ред p>
1. А. Гарнаев. Використання MS Excel і VBA в економіці і фінансах p>
2. С. Браун, Visual Basic 5.0 з самого початку, Москва 1999, видавництво
"Пітер" p>
3. Microsoft Visual Basic - on-Line HELP p>
ДОДАТОК 1 p>
ПРОГРАМА НА МОВІ MICROSOFT VISUAL BASIC p>
Модуль 1:
Sub Return_To_MainMenu ()
Worksheets ( "Зміст"). Activate
End Sub p>
Модуль 2:
Sub Task1 ()
Worksheets ( "Заданіе1"). Activate
End Sub
Sub Task2 ()
Worksheets ( "Заданіе2"). Activate
End Sub
Sub Task3 ()
Worksheets ( "Заданіе3"). Activate
End Sub
Sub Task4 ()
Worksheets ( "Заданіе4"). Activate
End Sub
Sub Task1_Evrica ()
Dim mas1 (3) As Integer
Dim mas2 (3) As Integer
Dim Mas_I1 (3) As Integer
B = Worksheets ( "Заданіе1"). Range ( "B11 "). Value c = Worksheets (" Заданіе1 "). Range (" C11 "). Value
D = Worksheets (" Заданіе1 "). Range (" D11 "). Value mas1 (1) = B mas1 (2 ) = c mas1 (3) = D i = 1 l = 0
Do k = mas1 (i) p>
''''' Занесення в масив Mas2 ел-тов> 1490 p>
If k> 1490 Then mas2 (i) = mas1 (i) Else mas2 (i) = 0 i = i + 1
Loop Until i = 4 p>
Max = -1 i = 0
Do i = i + 1 p>
If mas2 (i)> Max Then p>
Max = mas2 (i) indm = i p>
End If
Loop Until i = 3
Worksheets ( "Заданіе1"). Cells (12, indm + 1). Value = Max * 0.02 + Max * 0.04
'Worksheets ( "Заданіе1"). Range ( " f15 "). Value = r p>
'GoTo l
''''' Знаходимо MAx ел-т з решти,
''''' і запам'ятовуємо його індеск
Max = -1 i = 0
Do i = i + 1 p>
If i indm And mas2 (i)> Max Then p>
Max = mas2 (i) indm2 = i p>
End If
Loop Until i = 3
Worksheets ( "Заданіе1"). Cells (12, indm2 + 1). Value = Max * 0.02 + Max *
0.02
''''' Знаходимо MAx ел-т з решти,
''''' і запам'ятовуємо його індеск
Max = -1 i = 0
Do i = i + 1 p>
If mas2 (i)> Max And i indm2 And i indm Then p>
Max = mas2 (i) indm3 = i p>
End If
Loop Until i = 3
Worksheets ( "Заданіе1"). Cells (12, indm3 + 1). Value = Max * 0.02 + Max *
0.01
End Sub
Sub Task2_Evrica ()
Dim AA_1 (3) As Integer
B = Worksheets ( "Заданіе2"). Range ( "B11"). Valuec = Worksheets ( "Заданіе2"). Range ( "C11"). Value
D = Worksheets ( "Заданіе2"). Range ( "D11"). Value
AA_1 (1) = B
AA_1 (2) = c
AA_1 (3) = Di = 0
Do i = i + 1
If AA_1 (i) <700 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value =
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.01
If AA_1 (i)> = 700 And AA_1 (i) <1400 Then Worksheets ( "Заданіе2"). Cells (12,i + 1). Value = Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.015
If AA_1 (i)> = 1400 And AA_1 (i) <2800 Then
Worksheets ( "Заданіе2"). Cells (12, i + 1). Value =
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.023
If AA_1 (i)> = 2800 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = < br>Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.025
Loop Until i = 3
End Sub
Sub Task3_Evrica ()
Dim AA_2 (10) As Integer p>
Dim MM_1 (10) As Integer
Dim MM_2 (10) As Integer
Dim MM_3 (10) As Integer
Dim MM_4 (10) As Integer
Dim MM_5 (10) As Integer p>
Worksheets ( "Заданіе3"). Range ( "I3: I12"). Clear
Worksheets ( "Заданіе3"). Range ( "b3: h12"). Font.Bold = False
Worksheets ( "Заданіе3"). Range ( "b3: h12"). Font.Size = 10
Worksheets ( "Заданіе3"). Range ( "b3: h12"). Font.Italic = Falsei = 0
Do i = i + 1
AA_2 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 7). Value
Loop Until i = 9
Max = -1i = 0
Doi = i + 1
If AA_2 (i)> Max Then
Max = AA_2 (i)mm = i
End If
Loop Until i = 9 p>
Worksheets ( "Заданіе3"). Cells (mm + 2, 8). Value = "Макс. Ціна на товар"
Min = 100000i = 0
Doi = i + 1
If AA_2 (i) Min = AA_2 (i)mm2 = i
End If
Loop Until i = 9
Worksheets ( "Заданіе3"). Cells (mm2 + 2, 8). Value = "Мінім. Ціна на товар"
'''''''''''''''''''''''''''''i = 0
Do i = i + 1
MM_1 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 2). Value
MM_2 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 3). Value
MM_3 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 4). Value
MM_4 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 5). Value
MM_5 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 6). Value
Loop Until i = 9
''''1
Min = 100000i = 0
Doi = i + 1
If MM_1 (i) Min = MM_1 (i)x1 = i
End If
Loop Until i = 9
Worksheets ( "Заданіе3"). Cells (x1 + 2, 2). Font.Bold = True
Worksheets ( "Заданіе3"). Cells (x1 + 2, 2). Font.Size = 11
Worksheets ( "Заданіе3"). Cells (x1 + 2, 2). Font.Italic = True
''''2
Min = 100000i = 0
Doi = i + 1
If MM_2 (i) Min = MM_2 (i)x2 = i
End If
Loop Until i = 9
Worksheets ( "Заданіе3"). Cells (x2 + 2, 3). Font.Bold = True
Worksheets ( "Заданіе3"). Cells (x2 + 2, 3). Font.Size = 11
Worksheets ( "Заданіе3"). Cells (x2 + 2, 3). Font.Italic = True
''''3
Min = 100000i = 0
Doi = i + 1
If MM_3 (i) Min = MM_3 (i)x3 = i
End If
Loop Until i = 9
Worksheets ( "Заданіе3"). Cells (x3 + 2, 4). Font.Bold = True
Worksheets ( "Заданіе3"). Cells (x3 + 2, 4). Font.Size = 11
Worksheets ( "Заданіе3"). Cells (x3 + 2, 4). Font.Italic = True
''''4
Min = 100000i = 0
Doi = i + 1
If MM_4 (i) Min = MM_4 (i)x4 = i
End If
Loop Until i = 9
Worksheets ( "Заданіе3"). Cells (x4 + 2, 5). Font.Bold = True
Worksheets ( "Заданіе3"). Cells (x4 + 2, 5). Font.Size = 11
Worksheets ( "Заданіе3"). Cells (x4 + 2, 5). Font.Italic = True
''''5
Min = 100000i = 0
Doi = i + 1
If MM_5 (i) Min = MM_5 (i)x5 = i
End If
Loop Until i = 9
Worksheets ( "Заданіе3"). Cells (x5 + 2, 6). Font.Bold = True
Worksheets ( "Заданіе3"). Cells (x5 + 2, 6). Font.Size = 11
Worksheets ( "Заданіе3"). Cells (x5 + 2, 6). Font.Italic = True
''''6
End Sub
Sub Task5 ()
Worksheets ( "Заданіе5"). Activate
End Sub
Sub Task6 ()
Worksheets ( "Заданіе5"). Activate
End Sub
Sub Task5_Evrica ()
Dim G (4, 4)
Dim c (4)c (1) = Worksheets ( "Заданіе5"). Range ( "a1")c (2) = Worksheets ( "Заданіе5"). Range ( "b1")c (3) = Worksheets ( "Заданіе5"). Range ( "c1")c (4) = Worksheets ( "Заданіе5"). Range ( "d1")
Worksheets ( "Заданіе5"). Range ( "a3: d6"). Value = "" p> For i = 1 To 4
For j = 1 To 4
If ij + 1 Then G (i, j) = Abs (c (i - j) ^ 3 - c (i))
Next
Next
For i = 1 To 4
For j = 1 To 4
Worksheets ( "Заданіе5"). Cells (i + 2, j). Value = G (i, j)
Next
Next
End Sub
Sub Task6_Evrica ()
Dim X (4)
Dim Y (4)
X (1) = Worksheets ( "Заданіе5"). Range ( "a12")
X (2) = Worksheets ( "Заданіе5"). Range ( "a13")
X (3) = Worksheets ( "Заданіе5"). Range ( "a14")
X (4) = Worksheets ( "Заданіе5"). Range ( "a15")
Y (1) = Worksheets ( "Заданіе5"). Range ( "b12")
Y (2) = Worksheets ( "Заданіе5"). Range ( "b13")
Y (3) = Worksheets ( "Заданіе5"). Range ( "b14")
Y (4) = Worksheets ( "Заданіе5"). Range ( "b15")s1 = 0s2 = 0s3 = 0m = 4
For i = 1 To ms1 = s1 + X (i)s2 = s2 + X (i) * Y (i)s3 = s3 + X (i) * X (i)
Nexts = (2 * s1 + s2) * (2 - s1) + 3 + s3
Worksheets ( "Заданіе5"). Range ( "D15"). Value = s
End Sub
Sub Task7 ()
Worksheets ( "Розкрій"). Activate
End Sub
Sub Task7_DB ()
UserForm1.ComboBox1.Clear
UserForm1.ComboBox2.Clear
UserForm1.ComboBox3.Clear p>
UserForm1.ComboBox1.AddItem ( "Директор")
UserForm1.ComboBox1.AddItem ( "Зам. Директора")
UserForm1.ComboBox1.AddItem ( "Менеджер")
UserForm1.ComboBox1.AddItem ( "Сектетарь")
UserForm1.ComboBox1.AddItem ( "Адміністратор")
UserForm1.ComboBox1.AddItem ( "Охорона")
UserForm1.ComboBox1.AddItem ( "Водій")
UserForm1.ComboBox1.AddItem ( "Сторож")
UserForm1.ComboBox1.AddItem ( "Прибиральник") p>
UserForm1.ComboBox2.AddItem ( "10 років.")
UserForm1.ComboBox2.AddItem ( "9 років.")
UserForm1.ComboBox2.AddItem ( "8 років.")
UserForm1.ComboBox2.AddItem ( "3 роки.")
UserForm1.ComboBox2.AddItem ( "2 роки.")
UserForm1.ComboBox2.AddItem ( "1 рік.")
UserForm1.ComboBox2.AddItem ( "менше року .") p>
UserForm1.ComboBox3.AddItem (" 5 годин ")
UserForm1.ComboBox3.AddItem ( "6 годин")
UserForm1.ComboBox3.AddItem ( "7 годин")
UserForm1.ComboBox3.AddItem ( "8 годин") p>
UserForm1.Show
End Sub
Sub Task7_List ()
Worksheets ( "БД"). Activate
End Sub
Sub Model_of_storekeeping ()
UserForm2.Show
End Sub p>
Модуль 3: p>
Option Explicit
'Моделей управління запасами p>
Function CALC (buy As Variant) As Variant
Dim Цена_продажи, Цена_покупкі, Цена_возврата, NRows, i, j As Integer,
Result () As Integer
NRows = buy.Rows.Count
Цена_продажи = Range ( "a2"). Value
Цена_покупкі = Range ( "b2"). Value
Цена_возврата = Range ( "c2"). Value
ReDim Result (NRows, NRows)
For i = 1 To NRows
For j = 1 To NRows
If ij Then Result (i, j) = buy (j) * (Цена_продажи - Цена_покупкі) -
(buy (i) - buy (j)) * (Цена_покупкі - Цена_возврата)
Next j
Next i
CALC = Result
End Function p>
Sub Begin ()
Worksheets ( "Зміст"). Activate
End Sub
Sub Optimum_capital_investmentsEVR ()
Dim i, j, k, n, p, l, t As Integer
Dim m, r (), A () As Double k = 7 p>
ReDim r (k + 1, 6), A (k + 1) p>
For i = 1 To k + 1 p>
For j = 2 To 7 r (i, j - 1) = Cells (i + 3, j). Value p>
Next j p>
Next it = 2 p>
For p = 2 To 6 p>
If p = 2 Then p>
For j = 1 To k + 1 p> < p> A (j) = Cells (j + 3, 2). Value p>
Next j p>
End If p>
If p> 2 Then p >
For j = 1 To k + 1 p>
A (j) = Cells (j + 3, p + 5). Value p>
Next j p> < p> End If p>
For n = 1 To k + 1 m = -1 p>
For j = 1 To n p>
If m
End If p>
Next j p>
Cells (n + 3, 6 + p). Value = ml = t p>
For j = 1 To n p> < p> If m = A (j) + r (n + 1 - j, p) Then p>
Cells (n + 6 + k, l). Value = j - 1 p>
Cells (n + 6 + k, l + 1). Value = n - jl = l + 2 p>
End If p>
Next j p>
Next nt = l p>
Next p
End Sub p>
Модуль 4: p>
Sub Розкрій ()
Dim r, i1, i2, i3, i4, s, t As Integer
Dim l, a1, a2, a3, a4, a5, m As Integer p>
'Dim F, TT, SS, ZZ As String p>
l = 28a1 = 4: a2 = 6a3 = 9: a4 = 11r = 4m = Application.Min (a1, a2, a3, a4)t = Application.Floor (l/m, 1)
For i1 = 0 To t
For i2 = 0 To t
For i3 = 0 To t
For i4 = 0 To ts = 28 - a1 * i1 - a2 * i2 - a3 * i3 - a4 * i4
If s> = 0 And s Cells (r, 1). Value = r - 3
Cells (r, 2). Value = i1
Cells (r, 3). Value = i2
Cells (r, 4). Value = i3
Cells (r, 5). Value = i4
Cells (r, 6). Value = sr = r + 1
End If
Next i4
Next i3
Next i2
Next i1
Range ( "J4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; B4: B" & r - 1
& ")"
Range ( "K4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; C4: C" & r - 1
& ")"
Range ( "L4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; D4: D" & r - 1
& ")"
Range ( "M4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; E4: E" & r - 1
& ")"
Range ( "N4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; F4: F" & r - 1
& ") + B3 * (СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; B4: B" & r - 1 & ") -
J3) + C3 * (СУММПРОІЗВ ($ I $ 4: $ I $ "& r - 1 &"; C4: C "& r - 1 &") -
K3) + D3 * (СУММПРОІЗВ ($ I $ 4: $ I $ "& r - 1 &"; D4: D "& r - 1 &") -
L3) + E3 * (СУММПРОІЗВ ($ I $ 4: $ I $ "& r - 1 &"; E4: E "& r - 1 &")-M3) "
End Sub
Sub Optimum_capital_investments ()
Worksheets ( "Опт.капітал"). Activate
End Sub p>
UserFORM1 p>
Оброблювач події кнопки
Private Sub CommandButton1_Click ()
If UserForm1.TextBox1.Text = "" Then GoTo lli = 0
Doi = i + 1
Loop Until Worksheets ( "БД"). Cells (i, 1) = ""
Worksheets ( "БД"). Cells (i, 1) = UserForm1.TextBox1.Text
Worksheets ( "БД"). Cells (i, 2) = UserForm1.TextBox3.Text
If UserForm1.CheckBox2 = True Then p>
Worksheets ( "БД"). Cells (i, 6) = "Є" p>
Else p>
Worksheets ( "БД "). Cells (i, 6) =" Ні "
End If
If UserForm1.CheckBox1 = True Then
Worksheets ( "БД"). Cells (i, 7) = "Є"
Else
Worksheets ( "БД"). Cells (i, 7) = "Ні"
End If
Worksheets ( "БД"). Cells (i, 8) = UserForm1.TextBox5.Text + "грв."
Worksheets ( "БД"). Cells (i, 9) = UserForm1.TextBox2.Text
Worksheets ( "БД"). Cells (i, 10) = UserForm1.TextBox6.Text + "міс." P>
If UserForm1.OptionButton3 = True Then Worksheets ( "БД"). Cells (i, 11 ). Value
= "Є родина"
If UserForm1.OptionButton4 = True Then Worksheets ( "БД"). Cells (i, 11). Value
= "Ні сім'ї" p>
If UserForm1.OptionButton5 = True Then Worksheets ( "БД"). Cells (i, 12). Value
= "M"
If UserForm1.OptionButton6 = True Then Worksheets ( "БД"). Cells (i, 12). Value
= "Ж" p>
Worksheets ( "БД"). Cells (i, 3). Value = ComboBox1.Value
Worksheets ( "БД"). Cells (i, 4). Value = ComboBox2.Value
Worksheets ( "БД"). Cells (i, 5). Value = ComboBox3.Value p>
ll:
UserForm1.Hide
Worksheets ( "БД"). Activate
End Sub p>
Оброблювач події кнопки
Private Sub CommandButton2_Click ()
UserForm1.Hide
Worksheets ( "БД"). Activate
End Sub p>
UserForm2 p>
Оброблювач події кнопки
Private Sub CommandButton1_Click ()
Worksheets ( "Заданіе4"). Range ( "c10: h15"). Value = ""
Worksheets ( "Заданіе4"). Range ( "j11: j16"). Value = " "
Worksheets (" Заданіе4 "). Range (" b2 "). Value = UserForm2.TextBox1
Worksheets (" Заданіе4 "). Range (" a2 "). Value = UserForm2.TextBox2
Worksheets ( "Заданіе4"). Range ( "c2"). Value = UserForm2.TextBox3
UserForm2.Hide
Range ( "C10: H15"). FormulaArray = "= Модуль3.CALC (I11: I16)"
Range ( "J11: J16"). FormulaArray = "= MMULT ((C10: H15), TRANSPOSE (d7: i7))"
Range ( "f16"). Select
ActiveCell.FormulaR1C1 = "= large (r [-5] c [4]: rc [4], 1) "
Range (" f17 "). Select
ActiveCell.FormulaR1C1 =" = (match (large (r [-6] c [4]: r [-1] c [4], 1), r [-
6] c [4]: r [-1] c [4], 0) -1) * 5 "r = Range (" f16 "). Value v = Range (" f17 "). Value
UserForm3. Label3.Caption = Worksheets ( "Заданіе4"). Range ( "f16")
UserForm3.Label4.Caption = Worksheets ( "Заданіе4"). Range ( "f17")
UserForm3.Show
End Sub p>
Оброблювач події кнопки
Private Sub CommandButton2_Click ()
UserForm2.Hide
End Sub p>
UserForm3 p>
Private Sub CommandButton1_Click ()
UserForm3.Hide
End Sub p>
p>