ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Рішення економічних задач за допомогою VBA
         

     

    Інформатика, програмування

    МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

    КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЕОМ

    РІШЕННЯ ЕКОНОМІЧНИХ ЗАДАЧ ЗА ДОПОМОГОЮ 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 мають тип. Тип вказує що може зберігатимінлива: ціле число, рядок, дату і т.д.

    | Тип даних | займаний розмір пам'яті | Діапазон |
    | 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 |

    1.3 Стандартні ф-ції користувача для роботи з масивами і матрицями

    Використовуються такі ф-ції робочого листа для роботи з масивами:

    Count Кількість чисел в масиві

    CountA Кількість ел-тов масиву

    Sum Сума ел-тов масиву < p> 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 - змінна циклу використовується в додаванні записів в БД при пошукупорожнього поля 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, | 0 | 93,2 |
    | | 6 | | |


    2.3.2 Нарахування премії за визначеними умовами

    Створюємо таблицю нарахування премій, заповнюємо її величинами доходів завказані місяці, і вважаємо суму доходів за всі місяці. Детальний описяк створювати таблицю і заповнювати її значеннями привілля в попередньомупункті.

    Визначаємо які з отриманих сум доходів лежать у якій з 4-хзазначених в умові областей і заносимо рез-ти в таблицю в комірки B12: D12які відображають преміальні

    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

    Отримана таблиця виглядає наступним чином:

    | Місяць | М а г а з |
    | | І н и |
    | | 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 |


    2.3.3 Складання відомості розрахунку прибутку від товару

    Заповнюємо таблицю значеннями, як зазначено в умові т.е 5різновидів комплектуючих розташованих в клітинках B2: F2, і 9 варіантіввартостей комплек?? ующіх в комірках A3: A11. В осередках B3: F12 будерозташовуватися значення вартостей комплектуючих і вартості роботи докомплектації.

    В осередках G3 за формулою = СУММ (B3: F3) вважається загальна вартість всіхкомплектуючих, розтягуємо маркер комірки G3 до комірки G11, і отримуємовартість всіх комплектуючих для всіх варіантів вартостей.

    У програмі визначається яка деталь в якому місці сама дешовим,якщо не враховувати транспортні витрати і поставити собі за мету придбати деталі помінімальними цінами. Для цього в програмі визначаються мінімальні вартостіпо 5-ти деталям.

    Отримана відомість буде виглядати наступним чином:
    | Варіанти | В і д и к о м п л е к т | 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 | |
    | комплект | | | | | | | |
    | родної асоціації | | | | | | | |

    2.3.4 Модель управління запасами

    Вводимо початкові значення, тобто значення покупки продавцем журналів,продажу цих журналів і повернення до друкарні у випадку не реалізаціїтовару. Введення всього цього виробляється в діалоговому вікні, якестворюється як UserForm зі спеціальними кнопками і полями введення покупкижурналів, продажу, та повернення до друкарню. Вікно введення виглядає так:

    Складаємо таблицю що складається з обсягу реалізації, числа подій, іімовірності цих подій, перші два нам дані за умовою а ймовірністьцих подій потрібно порахувати. Вводимо в комірку D7 наступну формулуобчислення ймовірностей (= D6/СУММ ($ D $ 5: $ I $ 5))і розтягуємо маркер до осередку I7.

    У клітинках C10: H15 спомощью ф-ції користувача CALC Обчислюємо фінансовірезультати за всіх можливих варіанти подій покупки журналів та їх реалізації


    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

    В осередках J11: J16 за допомогою формули (= МУМНОЖ (C10: H15; транспо (D7: I7)))знаходимо очікуваний прибуток, соответсввующую різних варіантів покупкижурналів.

    У комірці F16 спомощью формули = найбільша (J11: J16; 1)обчислюємо максимальний прибуток. Її також можна знайти скориставшись ф -єю МАКС, знаходить максимальний ел-т зі списку

    = Макс (J11: J16)

    У комірці F17 за формулою = (ПОІСКПОЗ (найбільша (J11: J16; 1); J11 : J16; 0) -
    1) * 5відповідний оптимальний обсяг покупок газет. Потім функція CALC виводитьці оптимальні значення у вікні повідомлень.

    Ф-ція найбільший повертає К-е найбільше значення з безлічіданих. Ця ф-ція використовується для того, щоб вибрати значення за йоговідносного розташування. Наприклад, фунуцію НАЙБІЛЬШІ можнавикористовувати для того, щоб визначити найкращий, другий, третій результатв балах, показаний при тестуванні. Сістаксіс програми такий:

    найбільша (масив; К) де Масив - це масив або діапазон комірок девизначається найбільше значення, к - позиція (починаючи з найбільшою) вмасиві або діапазоні.

    Всі результати занесені в таблицю будуть виглядати наступним чином:

    | | | П р о | | | |
    | | | Д а ж | | | |
    | | | А | | | |
    | П | | 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 | | | | |
    | | | Об'єм | | | | | |

    2.3.5 Визначення оптимальних капіталовкладень

    Створюємо вихідну таблицю і заповнюємо її мат. очікуваннями прибутків усостветствіі з умовою.

    | | Ф е л | |
    | | І а л | |
    | | И | |
    | Млн. | 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 |

    Для подальшого вирішення завдання, вводимо такі позначення:

    Нехай R (i, j) - прибуток що отримується від вкладення i млн. грв. У j-тийфілія, де в соотв. З варіантом i від (0,7), а j від (0,6)

    F (A, 1,2) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2 філії разом

    F (A, 1,2,3) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3 філії разом

    F (A, 1,2,3,4) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4 філії разом.

    F (A, 1,2,3,4,5) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4,5 філії разом.

    F (A, 1,2,3,4,5,6) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4,5 філії разом.

    Значення I при яких досягається максимум визначають оптимальнікапіталовкладення у філії.

    Максимальні значення очікуваних прибутків обчислюється в програмі ізаноситься в осередку H4: L11 і буде виглядати наступним чином:

    | М а к с і | | |
    | м у м и | | |
    | 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 | | | |

    У програмі змінної К - присвоюємо значення рівне обьемукапіталовкладень. У масив R з робочого листа капіталовкладення вводимоочікуваний прибуток, розподілену по філіях.

    У діапазон комірок (B14: K22) виводиться оптимальний розподілкапіталовкладень по філіях. Після обчислень можна побачити щомаксімальния очікуваний прибуток становить 1,01 млн. грв. , З таблиці виднонаступні рез-ти:

    6 філія - 2 млн.

    5 філія - 1 млн.

    4 філія - 1 млн.

    3 філія - 1 млн.

    2 філія - 1 млн.

    1 філія - 1 млн.

    Сама таблиця виглядає наступним чином:

    | | Ф е л | | | |
    | | І а л | | | |
    | | И | | | |
    | 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 | |


    2.3.6 Завдання на знаходження оптимального розкрою

    Складаємо таблицю в якій будуть приведені залишки від розкрою назамовлення при різних варіантах розкрою.

    Наприклад за умовою у відповідності з варіантом стандартна довжинарозкрою дорівнює 28 метрів,тобто перший варіант розкрою буде сосотавлять 0 рулон дляніх 4 м, 0 рулонівдовжиною 6м і 4 рулону довжиною 9 м, рулонів завдовжки 11 м. не буде, що в сумідасть 27, отже відходи будуть становити 1 метр. Другий варіант коли
    1 рулон за 6 м і два по 11 м, в цьому випадку залишків не буде і т.д. Всьоговиходить 19 варіантів розкрою.

    У програмі це буде виглядати таким чином:

    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)

    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 < p> Next i2

    Next i1

    На аркуші це буде виглядати так:

    | Д л і н и р у л о н |
    | о в н а з а к а з |
    | Варіано | | | | | Залишок |
    | нти | | | | | |
    | Наклей і розфарбуй | 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 |

    Нехай Xj - кількість стандартних рулонів, розрізають по варіанту j, деj [1 .. 19]. Обмеження накладаються на змінні Xj пов'язані з вимогоюзабезпечити виготовлення замовленого кол-ва нестандартних рулонів. Ф-ціямети враховує сумарні відходи, одержані під час виконання замовлення. Такимчином маємо наступну мат. модель:

    Мінімізувати:
    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)

    Відведемо діапазон комірок (i4: i22) під змінні. Введемо в діапазоносередків (j3: m3) ліві частини обмежень, визначені стежу формулами:

    = СУММПРОІЗВ ($ I $ 4: $ I $ 22; B4: B22)

    = СУММПРОІЗВ ($ I $ 4: $ I $ 22; c4: c22)

    = СУММПРОІЗВ ($ I $ 4: $ I $ 22; d4: d22)

    = СУММПРОІЗВ ($ I $ 4: $ I $ 22; e4: e22)

    У комірку 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)

    де в осередку B3: E3 введені довжини, а в осередку J3: M3 - кол-ва замовленихрулонів

    Виберемо команду сервіс - Пошук рішення і заповнимо відкрилосядіалогове вікно Пошук рішення (Solver):

    - Встановимо цільову комірку - N4

    - Змінюючи клітинки I4: I22

    - Обмеження $ I $ 4: $ I $ 22 = ціле

    $ I $ 4: $ I $ 22> = 0

    $ j $ 4: $ m $ 4> = $ j $ 3: $ m $ 3

    -- Ф-ція = мінімізація


    | К о л - в а з а к а з а н и х р у л |
    | о н о в |
    | 220 | 210 | 35 | 38 | Відходи |
    | | | 0 | 0 | |
    | 220 | 210 | 35 | 38 | 49,99996 |
    | | | 0 | 0 | |

    2.3.7 База даних

    Створимо поля бази даних, і занесемо їх у таблицю. База даних будезаповнюватися програмою, програмі не потрібні назви полів, але дляполегшення орієнтації в першому рядку введемо дані відповідають полям
    БД

    Створимо кнопку "Додавання" для додавання записів у БД, робиться цетак: Викликаємо панель інструментів на якій розташовані примітиви, тобтовікно вводу, кнопки і т.д. Створюємо на формі кнопку, і спомощью св-ва Captionприсвоюємо їй назву "Додавання"

    Створимо макрос який буде відповідати за обробку подій після натисканняцієї кнопки. Перейдемо в середу Visual Basic for Application та в меню
    «Вставка» виберемо UserForm, на цю форму і помістимо всі об'єкти обумовленів умові (m розкривних списків, n полів вводу, ...).

    У макросі відповідальному за подія кнопки «Додати» введемо процедуруяка буде активізувати форму UserForm1, і заносити всі дані з вікнавведення в комірки аркуша A4: L4, A5: L5 і т.д.
    При натисканні кнопки "OK" виконається наступний код програми:

    Вікно введення виглядає наступним чином:

    Посібник/За ред

    1. А. Гарнаев. Використання MS Excel і VBA в економіці і фінансах

    2. С. Браун, Visual Basic 5.0 з самого початку, Москва 1999, видавництво
    "Пітер"

    3. Microsoft Visual Basic - on-Line HELP

    ДОДАТОК 1

    ПРОГРАМА НА МОВІ MICROSOFT VISUAL BASIC

    Модуль 1:
    Sub Return_To_MainMenu ()
    Worksheets ( "Зміст"). Activate
    End Sub

    Модуль 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)

    ''''' Занесення в масив Mas2 ел-тов> 1490

    If k> 1490 Then mas2 (i) = mas1 (i) Else mas2 (i) = 0 i = i + 1
    Loop Until i = 4

    Max = -1 i = 0
    Do i = i + 1

    If mas2 (i)> Max Then

    Max = mas2 (i) indm = i

    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

    'GoTo l
    ''''' Знаходимо MAx ел-т з решти,
    ''''' і запам'ятовуємо його індеск
    Max = -1 i = 0
    Do i = i + 1

    If i indm And mas2 (i)> Max Then

    Max = mas2 (i) indm2 = i

    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

    If mas2 (i)> Max And i indm2 And i indm Then

    Max = mas2 (i) indm3 = i

    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

    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

    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

    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 = ""

    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

    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 ( "Прибиральник")

    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 ( "менше року .")

    UserForm1.ComboBox3.AddItem (" 5 годин ")
    UserForm1.ComboBox3.AddItem ( "6 годин")
    UserForm1.ComboBox3.AddItem ( "7 годин")
    UserForm1.ComboBox3.AddItem ( "8 годин")

    UserForm1.Show
    End Sub
    Sub Task7_List ()
    Worksheets ( "БД"). Activate
    End Sub
    Sub Model_of_storekeeping ()
    UserForm2.Show
    End Sub

    Модуль 3:

    Option Explicit
    'Моделей управління запасами

    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


    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

    ReDim r (k + 1, 6), A (k + 1)

    For i = 1 To k + 1

    For j = 2 To 7 r (i, j - 1) = Cells (i + 3, j). Value

    Next j

    Next it = 2

    For p = 2 To 6

    If p = 2 Then

    For j = 1 To k + 1 < p> A (j) = Cells (j + 3, 2). Value

    Next j

    End If

    If p> 2 Then

    For j = 1 To k + 1

    A (j) = Cells (j + 3, p + 5). Value

    Next j < p> End If

    For n = 1 To k + 1 m = -1

    For j = 1 To n

    If m

    End If

    Next j

    Cells (n + 3, 6 + p). Value = ml = t

    For j = 1 To n < p> If m = A (j) + r (n + 1 - j, p) Then

    Cells (n + 6 + k, l). Value = j - 1

    Cells (n + 6 + k, l + 1). Value = n - jl = l + 2

    End If

    Next j

    Next nt = l

    Next p
    End Sub

    Модуль 4:

    Sub Розкрій ()
    Dim r, i1, i2, i3, i4, s, t As Integer
    Dim l, a1, a2, a3, a4, a5, m As Integer

    'Dim F, TT, SS, ZZ As String

    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


    UserFORM1

    Оброблювач події кнопки
    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

    Worksheets ( "БД"). Cells (i, 6) = "Є"

    Else

    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 + "міс."

    If UserForm1.OptionButton3 = True Then Worksheets ( "БД"). Cells (i, 11 ). Value
    = "Є родина"
    If UserForm1.OptionButton4 = True Then Worksheets ( "БД"). Cells (i, 11). Value
    = "Ні сім'ї"

    If UserForm1.OptionButton5 = True Then Worksheets ( "БД"). Cells (i, 12). Value
    = "M"
    If UserForm1.OptionButton6 = True Then Worksheets ( "БД"). Cells (i, 12). Value
    = "Ж"

    Worksheets ( "БД"). Cells (i, 3). Value = ComboBox1.Value
    Worksheets ( "БД"). Cells (i, 4). Value = ComboBox2.Value
    Worksheets ( "БД"). Cells (i, 5). Value = ComboBox3.Value

    ll:
    UserForm1.Hide
    Worksheets ( "БД"). Activate
    End Sub

    Оброблювач події кнопки
    Private Sub CommandButton2_Click ()
    UserForm1.Hide
    Worksheets ( "БД"). Activate
    End Sub


    UserForm2

    Оброблювач події кнопки
    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

    Оброблювач події кнопки
    Private Sub CommandButton2_Click ()
    UserForm2.Hide
    End Sub


    UserForm3

    Private Sub CommandButton1_Click ()
    UserForm3.Hide
    End Sub


         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status