• Нормальне функциониро-вання
  • Не активний
  • Менше 15 Вт


  • Дата конвертації26.05.2017
    Розмір211.26 Kb.
    Типдипломна робота

    Скачати 211.26 Kb.

    Розробка інвестиційного проекту ВАТ "Завод з виробництва труб великого діаметру"

    d>

    Визначення пожежонебезпечної категорії приміщення здійснюється шляхом порівняння максимального значення питомої тимчасової пожежного навантаження на будь-якому з ділянок з величиною питомої пожежного навантаження.

    Пожежне навантаження приміщень може включати в себе різні поєднання горючих і важкогорючих рідин і твердих матеріалів в межах пожежонебезпечного ділянки визначається за формулою

    Q =? G i Q i, (74)

    де Q - пожежна навантаження, МДж;

    G i - маса i-го матеріалу пожежного навантаження, кг;

    Q i - нижча теплота згоряння i-гo матеріалу, МДж / кг.

    Питома пожежна навантаження визначається за формулою

    q = Q / S, (75)

    Для приміщення площею S = 24 м 2 пожежне навантаження Q = 2180 МДж. За формулою (75) питома пожежна навантаження дорівнює 90,83 МДж / м 2. Отже, приміщення належить до категорії В4.

    Ступінь вогнестійкості приміщень - II. / 22 /

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

    4.5 Інженерна розробка. Розрахунок захисного занулення персонального комп'ютера

    Роботи зі створення диплома велися на персональному комп'ютері протягом трьох місяців. Для забезпечення безпечної роботи в фірмі передбачати розподільний щиток із захисним занулением. Електрична мережа з глухозаземленою нейтраллю має напругу 220 В.

    Умови спрацьовування захисту

    I К = k I, (76)

    де I К - струм однофазного короткого замикання, А;

    k - коефіцієнт, приймається в залежності від типи захисту електроустановки;

    I - струм спрацювання автоматичного вимикача, А.

    Якщо захист здійснюється автоматичним вимикачем, що спрацьовує без витримки часу, то k приймається в межах 1,25-1,4. Визначаємо найменший допустимий за умовами спрацьовування значення струму: I К = 1,25 50 = 62,5 А.

    Опір трансформатора Z Т = 1,949 Ом.

    Обчислюємо опір фазного провідника (R, Ом) за формулою

    , (77)

    де - питомий опір провідника, Ом мм 2 / м;

    l - довжина провідника, м;

    S - переріз провідника, мм 2.

    Тоді для лінії довжиною 100 м отримуємо активний опір фазного провідника

    R Ф = 0,018 100 / 2,25 = 0,8 Ом.

    Оскільки провід мідний, приймаємо внутрішнє індуктивне опір фазного провідника Х ф = 0.

    Обчислюємо щільність струму в сталевому нульовому захисному провіднику

    д = I K / S = 62,5 / (40 2) = 0,78 А / мм 2.

    Активний опір сталевого провідника r w = 4,2 Ом / км.

    Індуктивний опір сталевого провідника x w = 2,52 Ом / км. Тоді для лінії довжиною 100 м маємо: R Н.З = r w l = 4,2 0,1 = 0,42 Ом, X Н.З = x w l = 2,52 0,1 = 0,252 Ом.

    Визначаємо зовнішнє індуктивний опір петлі фаза-нуль (Ом / км) за формулою

    , (78)

    де - кутова частота, радий з -1;

    L - індуктивність лінії, Г;

    - відносна магнітна проникність середовища;

    0 = 4 10 -7, Г / м - магнітна постійна;

    l - довжина лінії, м;

    D - відстань між проводами лінії, м.

    Отримуємо: Х П = Х П l = 0,6 0,1 = 0,06 Ом.

    Справжнє значення струму однофазного короткого замикання, що проходить по петлі фаза-нуль при замиканні фази на корпус персонального комп'ютера обчислюється за формулою

    , (79)

    Відповідно до формули (79): = 115 А.

    Висновок: оскільки дійсне (обчислене) значення струму однофазного короткого замикання перевищує найменший допустимий за умовами спрацьовування захисту значення 62,5 А, провідник обраний правильно, тобто забезпечена відключає здатність системи занулення.

    Таким чином, параметри захисного занулення персонального комп'ютера в розглянутому приміщення відповідають оптимальним нормам / 23 /.


    5 Охорона природного навколишнього середовища


    В даний час значно зросла кількість комп'ютерної техніки, яка використовується в різних галузях діяльності людини. У цих умовах ставиться завдання максимального зменшення шкідливого впливу комп'ютерів на навколишнє середовище. Зазвичай виділяють кілька груп стандартів, що регламентують шкідливий вплив комп'ютерної техніки / 24 /. Розглянемо їх основні категорії:

    - стандарти безпеки;

    - ергономічні вимоги;

    - вимоги до випромінювань;

    - вимоги до електричної безпеки;

    - Додаткові вимоги;

    - екологічні стандарти;

    - стандарти зниженого енергоспоживання.

    Дипломна робота виконувалася в організації, де використовуються монітори, що підтримують стандарт ТСО-99.

    5.1 Стандарти безпеки

    ТСО (Шведська конфедерація професійних робочих) - є шведським національним законодавчим органом в області введення стандартів по електричним і магнітним перешкод, випромінюваних комп'ютерною технікою.

    В недалекому минулому існували різні стандарти в області безпеки моніторів різних типів (TCO-92, TCO-95, MPR II), зараз же стандарт TCO-99 не тільки об'єднав всі раніше описані вимоги, але і ще більш посилив їх.

    TCO-99 пред'являє жорсткі вимоги в наступних областях: ергономіка (фізична, візуальна і зручність використання), енергія, випромінювання (електричних і магнітних полів), довкілля та екологія, а також пожежна і електрична безпека.

    Вимоги представлені в таблиці 14.

    Таблиця 14 - Обов'язкові вимоги і рекомендації стандарту TCO-99

    параметр

    Обов'язкова вимога

    рекоменд ація

    1

    2

    3

    1. Візуальні ергономічні вимоги: вимоги до чіткості зображення

    1.3. лінійність

    X 1

    -

    1.4. ортогональность

    X

    -

    1.5.1. рівень яскравості

    X

    R 2

    1.5.2. рівномірність яскравості

    X

    R

    1.5.3. контрастність

    X

    R

    1.6. Відбивна здатність обрамлення екрану і блиск

    X

    R

    1.7.1. Коливання температури кольору

    X

    R

    1.7.2 Колірна однорідність і

    Характеристики

    X

    R

    2. Візуальні ергономічні вимоги: вимоги до стабільності зображення

    2.1. Періодична зміна яскравості

    X

    R

    2.2. Позиційна нестійкість (флуктуація)

    X

    R

    3. Фактори зовнішнього впливу

    3.1. зовнішні змінні магнітні поля.

    X

    R

    4. Вимоги до випромінювань і енергозбереження

    4.1. рентгенівське випромінювання

    X

    R

    4.2. електростатичний потенціал

    X

    -

    4.3. Змінне електричне поле

    X

    -

    4.4. Змінне магнітне поле

    X

    -

    4.5. енергозбереження

    X

    R

    5. Вимоги до електричної безпеки

    5.1. електрична безпека

    X

    R

    6. Додаткові характеристики

    6.1. Нахил у вертикальній площині

    -

    R

    6.2. регулювання висоти

    -

    R

    6.3. Поворот в горизонтальній площині

    -

    R

    6.3. Поворот в горизонтальній площині

    -

    R

    6.4. Регулювання яскравості і контрасту

    -

    R

    6.5. Індикація вертикальну частоту

    -

    R

    6.6. Акустичний шум (для ВДТ з вентилятором)

    X

    R

    7. Екологічні вимоги

    1. X - характеристики, обов'язкові для сертифікації, яка повинна бути проведена акредитованими лабораторіями.

    2. R - характеристики, які не потрібні для сертифікації в даний час, або характеристики, які можуть стати обов'язковими в майбутньому.

    Також TCO-99 передбачає нові методи проведення тестів. Стандарт TCO-99 поширюється на традиційні CRT монітори, плоско панельні монітори (Flat Panel Displays), портативні комп'ютери (Laptop і Notebook), системні блоки та клавіатури. Специфікації TCO-99 містять в собі вимоги, взяті зі стандартів TCO-95, ISO, IEC та EN, а також з EC Directive 90/270 / EEC та Шведського національного стандарту MPR 1990: 8 (MPRII) і з більш ранніх рекомендацій TCO. У розробці стандарту TCO-99 взяли участь TCO, Naturskyddsforeningen і and Statens Energimyndighet (The Swedish National Energy Administration, Шведське Національне Агентство по Енергетиці).

    5.2 Ергономічні вимоги

    Дані наведені в таблиці 15. Необхідні параметри на персональному компьюторе дотримані (розмір діагоналі - 17, дозвіл 1280х1024, частота 85 Гц).

    Таблиця 15 - Відповідність ергономічним вимогам

    Розмір діагоналі ЕПТ

    Частота вертикальної розгортки

    Дозвіл

    1

    2

    3

    14-15 "

    Не менш 85 Гц

    Проте 800 x 600

    17 "

    Не менш 85 Гц

    Проте 1024 x 768

    19-21 "

    Не менш 85 Гц

    Проте 1280 x 1024

    Не більше 21 "

    Не менш 85 Гц

    Проте 1280 x 1024

    Рекомендація: частота вертикальної розгортки не менше 100 Гц.

    5.3 Стандарти рівнів випромінювання

    5.3.1 Вимоги до електромагнітних випромінювань і енергоспоживанню

    Вимоги до електромагнітного випромінювання електронно-променевих моніторів не змінилися, але умови вимірювань стали більш жорсткими. Тепер вимірювання рівнів випромінювання проводяться при частоті кадрової розгортки 85 Гц замість 75 Гц і яскравості не менш 100 кд / м 2.

    5.3.2 Рентгенівське випромінювання

    Рентгенівське випромінювання не більше 5000 Гр / год. Рекомендація - не більше 300 Гр / год. Метод вимірювання: Відповідно до IEC 60 950 (Додаток H). Устаткування: згідно IEC 60 950. (Похибка вимірів не більше ± 10%).

    5.3.3 Електростатичний потенціал

    Еквівалентний поверхневий потенціал не більше ± 0,5 кВ.

    5.3.4 Змінне електричне поле

    Смуга I: 5 Гц-2 кГц, - не більше 10 В / м (на відстані 30 см перед екраном, 50 см навколо). Смуга II: 2 кГц-400 кГц, - не більше 1.0 В / м (на відстані 30 см перед екраном, 50 см в округ).

    5.3.5 Змінне магнітне поле

    Смуга I: 5 Гц-2 кГц, - не більше 250 НТ (на відстані 30 см перед екраном, 50 см навколо). Смуга II: 2 кГц-400 кГц, - не більше 25 НТ (на відстані 30 см перед екраном, 50 см навколо).

    5.3.6 Енергозбереження

    Енергоспоживання в режимі standby не більше 15 Вт. Енергоспоживання в режимі off не більше 5 Вт. При виході з режиму standby помітне зображення повинно з'явитися не більше ніж за три секунди.

    5.4 Вимоги до електричної безпеки

    ВДТ повинен бути сертифікований відповідно до стандарту EN 60950 (IEC 60950) "Безпека обладнання для інформаційних технологій, включаючи бізнес-обладнання". Все комп'ютер в офісі підтримують даний стандарт.

    5.5 Додаткові вимоги

    5.5.1 Нахил у вертикальній площині

    Рекомендація: монітор повинен повертатися вертикальній площині в діапазоні від -5 ° до + 20 °.

    5.5.2 Регулювання висоти

    Рекомендація: повинна бути можливість підняти або опустити ВДТ як мінімум на 110 мм.

    5.5.3 Поворот в горизонтальній площині

    Рекомендація: монітор повинен повертатися щодо підставки в горизонтальній площині на 45 ° в кожну сторону (щодо це нтрального положення).

    5.5.4 Регулювання яскравості і контрасту

    Рекомендація: у користувача повинна бути можливість легко змінити яскравість і контраст зображення, наприклад, за допомогою екранного м еню (OSD).

    5.5.5 Індикація вертикальну частоту

    Рекомендація: у користувача повинна бути можливість легко дізнатися кадрової частоти, наприклад, за допомогою екранного меню (OSD).

    5.5.6 Акустичний шум (для ВДТ з вентилятором)

    Вбудований вентилятор повинен задовольняти вимогам, що пред'являються до вентиляторів системного блоку комп'ютера. Гучність шуму не більше 4,5 бел в режимі Stand-By і не більше 5,5 бел в робочому режимі (1 бел дорівнює 10 децибел).

    5.6 Екологічні стандарти

    Повсюдне поширення моніторів змушує користувачів проявляти все більше занепокоєння з приводу їх впливу на організм людини. Західноєвропейські країни (Німеччина та Голландія) і країни Північної Європи (Швеція і Норвегія) були ініціаторами програм по ко нтролю електромагнітних випромінювань, ергономіки для захисту зору, економії енергії і, нарешті, охорони навколишнього середовища та утилізації відходів.

    Було доведено, що некоректне застосування важких металів, таких як свинець, ртуть, кадмій, берилій, барій, стронцій і мідь, негорючих бромових сумішей і руйнівників озону (CFC, HCFC), серйозно впливає на навколишнє середовище.

    Користувачі усвідомили, що перераховані вище фактори згубно впливають на організм, в результаті стала неможлива торгівля виробами, що не задовольняють вимогам стандартів ТСО-99.

    5.7 Стандарти зниженого енергоспоживання

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

    Найпоширенішим енергозберігаючим нормативом є стандарт Energy Star, запропонований американським Агентством по захисту навколишнього середовища. За стандартом ЕРА Energy Star пристрій повинен споживати в неактивному режимі не більше 30 Вт електроенергії. Для виконання вимог стандарту ЕРА Energy Star асоціацією VESA був розроблений спеціальний стандарт DPMS, програмне забезпечення якого має функцію підтримки управління економним споживанням потужності. Стандарт сигналізації системи управління потужністю монітора наведено в таблиці 15.

    Таблиця 15 - Стандарт сигналізації системи управління потужністю монітора

    стан

    Нормальне функциониро-вання

    Режим функції збереження харчування

    тимчасовий режим

    Режим відключення живлення

    1

    2

    3

    4

    горизонтальна
    вертикальна
    Відео

    активна
    активна
    активна

    Активна / Чи не активна
    Чи не активна / Активна
    Не використовується

    Не активний

    Не активний
    Не використовується

    індикатор
    (Колір LED)

    зелений

    помаранчевий

    помаранчевий,
    зелений,

    Миготливий (інтервал 1 сек)

    споживання потужності

    до 80 Вт

    Менше 15 Вт

    менше
    8 Вт

    Відповідно до специфікації VESA монітор може перебувати в одному з чотирьох режимів: On (включено), Stand by ( "черговий", або "чекає"), Suspend (мінімальне споживання електроенергії) і Off (вимкнений).Перехід на кожен наступний режим відбувається після вказаного часу не буде активності, яке задається програмно.

    Норми енергозбереження містяться також в стандарті ТСО-99.

    5.8 Екологічна оцінка комп'ютера як об'єкта забруднення навколишнього середовища.

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

    Утилізація: розширення областей застосування комп'ютерної техніки, її швидке моральне старіння гостро ставить питання про необхідність розробки нових технологій переробки комп'ютерного брухту.

    До недавнього часу при утилізації старих комп'ютерів відбувалася їх розробка на фракції: метали, пластмаси, скло, дроти, штекери. Вторинні ресурси металів складаються з брухту (3-4%) і відходів (57%). З однієї тонни комп'ютерного брухту отримують до 200 кг міді, 480 кг заліза і нержавіючої сталі, 32 кг алюмінію, 3 кг срібла, 1 кг золота і 300 г паладію.

    В даний час розроблені наступні методи переробки комп'ютерного брухту та захисту літосфери від нього:

    - сортування друкованих плат по домінуючим матеріалами;

    - дроблення і подрібнення;

    - гранулювання, в окремих випадках сепарація;

    - випал отриманої маси для видалення згорають компонент;

    - розплавлення отриманої маси, рафінування;

    - Точні витяг окремих металів;

    - створення екологічних схем переробки комп'ютерного брухту;

    - створення екологічно чистих комп'ютерів.

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

    Кращим способом оброблення проводів можна вважати відділення ізоляції від дроту механічним способом. За допомогою грануляторов спеціальної конструкції задовільно вирішена проблема відділення термоплавким і гумовій ізоляції. Установка придатна для переробки дроту, ізольованою термопластом і папером. Установка не придатна для деяких типів проводів, ізольованих бавовняною тканиною, для кабелів зі свинцевою оболонкою і для всіх сортів ізоляції, яка прилипає до проводу так, що не відділяється від металу навіть при дуже тонкої грануляції. При переробки проводів, у яких поділ ізоляції і міді здійснюється задовільно і майже без втрат виходить термопласт, останній може служити сировиною для виготовлення менш відповідальних деталей.

    Якщо між проводами, ізольованими термопластом, є ізоляція з тканини, її можна видалити з суміші шматків міді та ізоляції за допомогою відсмоктує пристрою. Ця установка закрита і механізована, вимагає мінімального обслуговування і забезпечує продуктивність - 500 тонн ізольованого дроту на рік. При роботі установки не забруднюється атмосфера, технологія економічно більш вигідна, ніж випал ізоляції в печах.

    Переробку промислових відходів виробляють на спеціальних полігонах, що створюються відповідно до вимог СНиП 2.01.28-85 і призначених для централізованого збору знешкодження та захоронення токсичних відходів промислових підприємств, НДІ та установ.

    При всіх існуючих способах переробки комп'ютерного брухту необхідні нові, більш досконалі, екологічно чисті методи.

    Таким чином, параметри екологічної оцінки комп'ютера як об'єкта забруднення навколишнього середовища в розглянутому приміщення відповідають оптимальним нормам / 25 /.


    висновки



    1 У дипломній роботі розроблена нова модель оцінки рівня ризику інвестиційного проекту, що поєднує в собі переваги вже застосовуються в практиці моделей.

    2 Для однозначної характеристики рівня ризику проекту було запропоновано використання нечітко-множинної моделі прийняття рішення.

    3 Нова модель використовує згортку трьох критеріїв оцінки рівня ризику проекту: ймовірність попадання в зону неефективності, критерій ліквідності і критерій покриття, за допомогою яких найбільш повно можна охарактеризувати невизначеність існуючої інформаційного середовища.

    4 Розроблено технологію використання нечіткого виведення для прийняття рішення щодо оцінки рівня ризику інвестиційного проекту.

    5 Розроблено програмно-алгоритмічне забезпечення розрахунку значень використовуваних в моделі критеріїв і об'єднання їх в один загальний показник, що характеризує рівень ризику проекту.

    6 Переваги розробленої моделі були показані при оцінці рівня ризику інвестиційного проекту будівництва заводу труб великого діаметру в Нижньому Тагілі.

    7 У розділі безпеку життєдіяльності враховано вплив небезпечних і шкідливих чинників і проведено розрахунок захисного занулення.

    Список використаних джерел



    1 Савчук В.П. Оцінка інвестиційних проектів. - На сайті:

    2 Каблуков В.В. Моделі оцінки ризиків стратегічних інвестиційних проектів: Дис ... кандидата економічних наук. - Санкт-Петербург, 1999. - 167 с.

    3 http://sedok.narod.ru/inv_risk_calc.html - Безсонов Д.А. Оцінка ризику інвестиційного проекту

    4 Абрамов С.І. Інвестування. - М .: Центр економіки і маркетингу, 2000..

    5 Віленський В.Л., Ліфшиц В.М., Смоляк С.А. Оцінка ефективності інвестиційних проектів. Теорія та практика. - М. Справа, 2001..

    6 Недосекин О.А. Нечітко-множинний аналіз ризиків фондових інвестицій. - СПб .: Сезам, 2003.

    7 Моделювання ризикових ситуацій в економіці та бізнесі / Дубров А.М., Лагоша Б.А., Хрустальов Є.Ю. та ін.; Під ред. Б.А.Лагоша; М .: Фінанси і статистика, 2001..

    8 Лапуста М.Г., Шаршукова Л.Г. Ризики у підприємницькій діяльності. - М .: Инфра, 1998..

    9 http://www.cfin.ru/finanalysis/quant_risk.shtml - Дмитрієв М.М., Кошечкин С.А. Кількісний аналіз ризику інвестиційних проектів.

    10 Козинцев Т.О. - Використання техніки динамічного моделювання в менеджменті процентних ризиків. - М .: Диалог-МГУ, 2000..

    11 Заде Л. - Поняття лінгвістичної змінної і її застосування до прийняття наближених рішень, М., Мир, 1976.

    12 Беллмана Р., Заде Л. - Прийняття рішень в розпливчастих умовах // Питання аналізу та процедури прийняття рішення. - М .: Мир, 1976.

    13 Кофман А. - Введення в теорію нечітких множин. - М .: Радио и связь, 1982.

    14 Кофман А., Хіл Алуха Х. - Введення теорії нечітких множин в управлінні підприємствами, Мінськ, Вишейшая школа, 1992.

    15 http://sedok.narod.ru/sc_group.html - Недосекин О.А. Оцінка ризику інвестицій по NPV довільно-нечіткої форми.

    16 http://sedok.narod.ru/sc_group.html - Недосекин О.А., Кокош А.М. Оцінка ризику інвестицій для довільно-розмитих факторів інвестиційного проекту.

    17 Смирнов О.П., Якунін А.Г .. Модель управління операціями ділянки «сталь-прокат» в класі нечітких систем // Чорна металургія. - 2001. - №3.

    18 Прикладні нечіткі системи: пров. з япон. / К.Асаі, Д.Ватада, с.Івано і ін .; під. ред. Т.Терано, К.Асаі, М.Сугено. - М .: Мир, 1993.

    19 Бабайцев І.В., варенка А.Н., Потоцький Є.П. Безпека життєдіяльності та екологія в дипломній роботі. Навчальний посібник. - М .: місіс, 1997..

    20 ГОСТ 12.0.003-74. Небезпечні і шкідливі виробничі фактори. Класифікація. - М .: Видавництво стандартів, 1975.

    21 СНиП 2.01.02-85. Протипожежні норми. - М .: Стройиздат, 1986.

    22 НПБ 105-95. Визначення категорій приміщень і будинків по вибухопожежної і пожежної небезпеки. М.: МВС РФ. Державна протипожежна служба, 1995.

    23 ГОСТ 12.1.030-81. Електробезпека. Захисне заземлення. Занулення. - М .: Видавництво стандартів, 1981.

    24 СанПіН 2.2.542-96. Гігієнічні вимоги до Дмитрий Мансуров, персональних електронно-обчислювальних машин та організації роботи. - М .: Госкомсанепіднадзор Росії, 1996..

    25 Навчальний посібник по розділах «Безпека життєдіяльності» та «Охорона навколишнього природного середовища» в дипломній роботі / за ред. проф. Б.С.Мастрюкова - М .: місіс, 2000..

    Додаток Б. Текст програми

    unit datamodul;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, Grids, StdCtrls, ExtCtrls, ComCtrls, Spin, Menus;

    type

    TForm1 = class (TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    Panel1: TPanel;

    Label1: TLabel;

    Label2: TLabel;

    SpinEdit1: TSpinEdit;

    Label3: TLabel;

    Edit1: TEdit;

    StringGrid1: TStringGrid;

    Label4: TLabel;

    StringGrid2: TStringGrid;

    Label5: TLabel;

    StringGrid3: TStringGrid;

    CheckBox1: TCheckBox;

    StringGrid4: TStringGrid;

    Label6: TLabel;

    N6: TMenuItem;

    N7: TMenuItem;

    N8: TMenuItem;

    SaveDialog1: TSaveDialog;

    OpenDialog1: TOpenDialog;

    Label7: TLabel;

    Edit2: TEdit;

    N5: TMenuItem;

    N9: TMenuItem;

    GroupBox1: TGroupBox;

    Label8: TLabel;

    Edit3: TEdit;

    Label9: TLabel;

    Edit4: TEdit;

    Button1: TButton;

    procedure FormCreate (Sender: TObject);

    procedure SpinEdit1Change (Sender: TObject);

    procedure StringGrid1KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid2KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid3KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid4KeyPress (Sender: TObject; var Key: Char);

    procedure CheckBox1Click (Sender: TObject);

    procedure N8Click (Sender: TObject);

    procedure N7Click (Sender: TObject);

    procedure N3Click (Sender: TObject);

    procedure N4Click (Sender: TObject);

    procedure N6Click (Sender: TObject);

    procedure Edit2KeyPress (Sender: TObject; var Key: Char);

    procedure N5Click (Sender: TObject);

    procedure N9Click (Sender: TObject);

    procedure Button1Click (Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    Form1: TForm1;

    i, j, n, nRt: integer; {Циклич.пер-е, к-ть ПУП, к-ть ПУП для розрахунку Rt}

    Ir, G: real; {Соб.кап вкладення для Rt, критерій ефективності}

    Ip: array [1..3] of real; {Макс. і хв-е значення первонач.кап.вложеній}

    RSvar, Rdvar, Vt: array [1..20] of real; {реальне значення Si і di для підрахунку Rt, кр.ріска}

    dvar: array [1..3,1..20] of real; {Безріск.% Ставка 1-й рядок - хв, 2 - макс.}

    Svar, NPVvar, Rt: array [1..3,1..20] of real; {Інтервали ден.потоков 1 рядок - хв, 2 - сред.зн., 3 - макс, NPV-масив, кр.ліквідності}

    At, Zt, Ct: array [1..2,1..20] of real; {Соб, позику кошти, кр.покритія 1 хв, 2 макс}

    mCt, mVt, mRt: array [1..4,1..20] of real; {Масиви функцій приладдя до ризику}

    kCt, kVt, kRt, kre: array [1..3] of real; {Масиви верхніх меж ваг для оцінки ризику, 1 мінімальний, 4 - неприпустимий}

    implementation

    uses Rtmodul, Rezaltmodul, Formirmodul, mmodul, Rulermodul;

    {$ R * .dfm}

    procedure TForm1.FormCreate (Sender: TObject);

    begin

    n: = SpinEdit1.Value;

    StringGrid1.ColCount: = n;

    StringGrid2.ColCount: = n;

    StringGrid3.ColCount: = n;

    StringGrid4.ColCount: = n;

    Checkbox1.Checked: = false;

    kCt [1]: = 0.25; kCt [2]: = 0.5; kCt [3]: = 0.75;

    kRt [1]: = 0.25; kRt [2]: = 0.5; kRt [3]: = 0.75;

    kVt [1]: = 0.05; kVt [2]: = 0.1; kVt [3]: = 0.2;

    kre [1]: = 0.25; kre [2]: = 0.5; kre [3]: = 0.75;

    for j: = 0 to n-1 do begin

    StringGrid1.Cells [j, 0]: = IntToStr (j + 1);

    StringGrid2.Cells [j, 0]: = IntToStr (j + 1);

    StringGrid3.Cells [j, 0]: = IntToStr (j + 1);

    StringGrid4.Cells [j, 0]: = IntToStr (j + 1);

    RSvar [j + 1]: = 0; Rdvar [j + 1]: = 0;

    end;

    Rtkey: = false; Ir: = 0; nRt: = 0;

    end;

    procedure TForm1.SpinEdit1Change (Sender: TObject);

    begin

    n: = SpinEdit1.Value; CheckBox1.Checked: = false;

    Form4.StringGrid1.ColCount: = n + 1; Form4.StringGrid2.ColCount: = n + 1; Form2.SpinEdit1.Value: = n;

    Form3.StringGrid1.RowCount: = n + 1; Form3.StringGrid2.RowCount: = n + 1;

    StringGrid1.ColCount: = n; StringGrid2.ColCount: = n; StringGrid3.ColCount: = n; StringGrid4.ColCount: = n;

    for j: = 0 to n-1 do begin

    StringGrid1.Cells [j, 0]: = IntToStr (j + 1); StringGrid2.Cells [j, 0]: = IntToStr (j + 1); StringGrid3.Cells [j, 0]: = IntToStr (j + 1);

    StringGrid4.Cells [j, 0]: = IntToStr (j + 1);

    Form3.StringGrid1.Cells [0, j + 1]: = IntToStr (j + 1); Form3.StringGrid2.Cells [0, j + 1]: = IntToStr (j + 1);

    Form4.StringGrid1.Cells [j + 1,0]: = IntToStr (j + 1); Form4.StringGrid2.Cells [j + 1,0]: = IntToStr (j + 1);

    end;

    end;

    procedure TForm1.StringGrid1KeyPress (Sender: TObject; var Key: Char);

    begin

    Case key of

    chr (45), chr (48), chr (49), chr (50), chr (51), chr (52), chr (53), chr (54), chr (55), chr (56), chr (57), chr (59), chr (44), chr (8) :;

    else key: = chr (0); end;

    end;

    procedure TForm1.StringGrid2KeyPress (Sender: TObject; var Key: Char);

    begin

    Case key of

    chr (45), chr (48), chr (49), chr (50), chr (51), chr (52), chr (53), chr (54), chr (55), chr (56), chr (57), chr (59), chr (44), chr (8) :;

    else key: = chr (0); end;

    end;

    procedure TForm1.StringGrid3KeyPress (Sender: TObject; var Key: Char);

    begin

    Case key of

    chr (48), chr (49), chr (50), chr (51), chr (52), chr (53), chr (54), chr (55), chr (56), chr (57), chr (59), chr (44), chr (8) :;

    else key: = chr (0); end;

    end;

    procedure TForm1.StringGrid4KeyPress (Sender: TObject; var Key: Char);

    begin

    Case key of

    chr (45), chr (48), chr (49), chr (50), chr (51), chr (52), chr (53), chr (54), chr (55), chr (56), chr (57), chr (59), chr (44), chr (8) :;

    else key: = chr (0); end;

    end;

    procedure TForm1.CheckBox1Click (Sender: TObject);

    begin

    case CheckBox1.State of

    cbChecked: begin

    StringGrid4.ColCount: = 1; Stringgrid4.RowCount: = 1; StringGrid4.FixedCols: = 0; StringGrid4.FixedRows: = 0;

    end;

    cbUnchecked: begin

    StringGrid4.ColCount: = n; Stringgrid4.RowCount: = 2; StringGrid4.FixedCols: = 0; StringGrid4.FixedRows: = 1;

    For j: = 1 to n do begin StringGrid4.Cells [j-1,0]: = IntToStr (j); end;

    end;

    end;

    end;

    procedure TForm1.N8Click (Sender: TObject);

    var

    str, str2, str3: string;

    k, ii, iv, re: integer;

    Cto, Rto: array [1..20] of real; // масиви узагальнених значень Ct і Rt

    smax, smin, sav, min, A1, A2, B1, B2, C1, C2, K1, K2, vr, vrz, vrch, mvr1, mvr2, mvr3, mvr4: real;

    begin

    // ------------------------------- введення критерію ефективності

    try G: = StrToFloat (Edit2.Text);

    Except G: = 0; Edit2.Text: = IntToStr (0); end;

    // ------------------------------- введення первонач. ден кап

    str: = Edit1.Text;

    if pos (;, str) <> 0 then begin str2: =; k: = 1;

    for i: = 1 to Length (str) do begin

    if (str [i] <>;) then str2: = str2 + str [i]

    else begin

    Ip [k]: = StrToFloat (str2);

    str2: =;

    k: = k + 1;

    end;

    if i = Length (str) then Ip [k]: = StrToFloat (str2);

    end;

    end else begin

    try

    Ip [1]: = StrToFloat (str); Ip [2]: = StrToFloat (str); Ip [3]: = StrToFloat (str);

    except

    showmessage (Помилка при введенні значення первинних капіталовкладень!); FocusControl (Edit1);

    end;

    end;

    // ------------------------------ введення масиву грошових потоків:

    for j: = 0 to n-1 do begin

    str: = StringGrid1.Cells [j, 1];

    if pos (;, str) <> 0 then begin str2: =; k: = 1;

    for i: = 1 to Length (str) do begin

    if (str [i] <>;) then str2: = str2 + str [i]

    else begin

    Svar [k, j + 1]: = StrToFloat (str2);

    k: = k + 1; str2: =;

    end;

    if i = Length (str) then Svar [k, j + 1]: = StrToFloat (str2);

    end;

    end else try

    Svar [1, j + 1]: = StrToFloat (str); Svar [2, j + 1]: = StrToFloat (str); Svar [3, j + 1]: = StrToFloat (str);

    except

    showmessage (Помилка при введенні значень інтервалів грошових потоків!); FocusControl (Stringgrid1);

    end;

    end;

    // ---------------------------- введення масиву соб.і позику. коштів

    for j: = 0 to n-1 do begin

    str: = StringGrid2.Cells [j, 1];

    str3: = StringGrid3.Cells [j, 1];

    if pos (;, str) <> 0 then begin str2: =; k: = 1;

    for i: = 1 to Length (str) do begin

    if (str [i] <>;) then str2: = str2 + str [i]

    else begin

    At [k, j + 1]: = StrToFloat (str2);

    k: = k + 1; str2: =;

    end;

    if i = Length (str) then At [k, j + 1]: = StrToFloat (str2);

    end;

    end else try

    At [1, j + 1]: = StrToFloat (str);

    At [2, j + 1]: = StrToFloat (str);

    except

    showmessage (Помилка при введенні значень власних коштів!);

    FocusControl (StringGrid2);

    end;

    if pos (;, str3) <> 0 then begin str2: =; k: = 1;

    for i: = 1 to Length (str3) do begin

    if (str3 [i] <>;) then str2: = str2 + str3 [i]

    else begin

    Zt [k, j + 1]: = StrToFloat (str2);

    k: = k + 1; str2: =;

    end;

    if i = Length (str3) then Zt [k, j + 1]: = StrToFloat (str2);

    end;

    end else try

    Zt [1, j + 1]: = StrToFloat (str3);

    Zt [2, j + 1]: = StrToFloat (str3);

    except

    showmessage (Помилка при введенні значень позикових коштів!);

    FocusControl (StringGrid3);

    end;

    end;

    // ------------------------ Введення масиву безріск.% Ставки

    case CheckBox1.State of

    cbChecked: begin

    str: = StringGrid4.Cells [0,0];

    if pos (;, str) <> 0 then begin str2: =; k: = 1;

    for i: = 1 to Length (str) do begin

    if (str [i] <>;) then str2: = str2 + str [i]

    else begin

    dvar [k, 1]: = StrToFloat (str2);

    k: = k + 1; str2: =;

    end;

    if i = Length (str) then dvar [k, 1]: = StrToFloat (str2);

    end;

    end else begin try

    dvar [1,1]: = StrToFloat (str);

    dvar [2,1]: = StrToFloat (str);

    dvar [3,1]: = StrToFloat (str);

    except

    showmessage (Помилка при введенні значення безризикової процентної ставки!);

    FocusControl (Stringgrid4);

    end; end;

    for i: = 2 to n do begin

    dvar [1, i]: = dvar [1,1];

    dvar [2, i]: = dvar [2,1];

    dvar [3, i]: = dvar [2,1];

    end;

    end;

    cbUnchecked: begin

    for j: = 0 to n-1 do begin

    str: = StringGrid4.Cells [j, 1];

    if pos (;, str) <> 0 then begin str2: =; k: = 1;

    for i: = 1 to Length (str) do begin

    if (str [i] <>;) then str2: = str2 + str [i]

    роект (грошові потоки, отримані на момент часу t), грошові одиниці,
    I - початкові капіталовкладення, грошові одиниці.

    Ясно, що Ri - випадкова величина, її реалізації становлять значення коефіцієнта ліквідності стратегічного інвестиційного проекту за плановий період.

    Четвертим основним критерієм стратегічного інвестиційного проекту в умовах ризику є стратегічна значущість. Формалізація цього критерію можлива лише при обліку цілей конкретного проекту.

    Для розглянутого в роботі проекту автор формує критерій стратегічної значущості для суб'єкта і доповнює їм наведену вище модель

    (10)

    до - розмірність вектора Pf (t), одиниці,

    f - число ресурсів в "портфелі ресурсів", одиниці,

    t - номер планово-облікових періоду,

    Pf - ціна на f-й ресурс, грошові одиниці,

    P t krit - критичний ліміт ціни на f-й ресурс, грошові одиниці,

    Vn - коефіцієнт коваріації Pf і Pt, (грошові одиниці) 2,

    xf - частка f-го ресурсу в "портфелі ресурсів", частки одиниці.

    1.5.8 Метод нечітко-множинної оцінки інвестиційного проекту



    Задамо набір нечітких чисел = (a min,, a max) для аналізу ефективності проекту (ці числа моделюють висловлювання такого вигляду: "параметр А приблизно дорівнює і однозначно перебуває в діапазоні [a min, a max]".):

    - = (I min,, I max) - інвестор не може точно оцінити, яким обсягом інвестиційних ресурсів він буде мати у своєму розпорядженні на момент прийняття рішення;

    - = (r i min,, r i max) - інвестор не може точно оцінити вартість капіталу, використовуваного в проекті (наприклад, співвідношення власних і позикових коштів, а також відсоток за довгостроковими кредитами);

    - = (V min,, V max) - інвестор прогнозує діапазон зміни фінансових результатів реалізації проекту з урахуванням можливих коливань цін на реалізовану продукцію, вартості споживаних ресурсів, умов оподаткування, впливу інших факторів;

    - = (G min,, G max) - інвестор нечітко уявляє собі критерій, за яким проект може бути визнаний ефективним, або не до кінця віддає собі звіт в тому, що можна буде розуміти під "ефективністю" на момент завершення інвестиційного процесу.

    У тому випадку, якщо який-небудь з параметрів однозначно заданий, то нечітке число вироджується в дійсне число А з виконанням умови a min = = a max. При цьому істота методу залишається незмінним.

    Щоб перетворити формулу (4) до вигляду, придатного для використання нечітких вихідних даних, скористаємося способом, запропонованим автором у / 6 /.

    Задамося фіксованим рівнем приналежності і визначимо відповідні йому інтервали достовірності за двома нечітким числах і: [a 1, a 2] і [b 1, b 2], відповідно. Тоді основні операції з нечіткими числами зводяться до операцій з їх інтервалами достовірності. А операції з інтервалами, в свою чергу, виражаються через операції з дійсними числами - межами інтервалів:

    операція "складання"

    [a 1, a 2] (+) [b 1, b 2] = [a 1 + b 1, a 2 + b 2], (11)

    операція "віднімання"

    [a 1, a 2] (-) [b 1, b 2] = [a 1 - b 2, a 2 - b 1], (12)

    операція "множення"

    [a 1, a 2] () [b 1, b 2] = [min (a 1 b 1, a 1 b 2, a 2 b 1, a 2 b 2), max (a 1 b 1, a 1 b 2, a 2 b 1, a 2 b 2)], (13)

    операція "поділу"

    [a 1, a 2] (/) [b 1, b 2] = [a 1, a 2] () [1 / b 2, 1 / b 1] (14)

    операція "піднесення до степеня"

    [a 1, a 2] (^) i = [a 1 i, a 2 i]. (15)

    По кожному нечіткому числу в структурі вихідних даних отримуємо інтервали достовірності [I 1, I 2], [r i1, r i2], [V i1, V i2]. І тоді, для заданого рівня, шляхом підстановки відповідних меж інтервалів в (4) за правилами (11) - (15), отримуємо

    (16)

    Далі, задавшись прийнятним рівнем дискретизації по на інтервалі приналежності [0, 1], автор в / 6 / призводить функцію приналежності результуючого нечіткого числа до трикутного вигляду, обмежуючись розрахунками по значимим точкам нечітких чисел вихідних даних.

    Далі, виходячи з функцій приналежності і конкретизуючи певний рівень приналежності, автор будує зону неефективних інвестицій і обчислює площі () цієї плоскої фігури в залежності від інтервальних значень чистої приведеної вартості (NPV 1, NPV 2) і критерію ефекту (G 1, G 2).

    Після чого, припустивши, що всі реалізації (NPV, G) при заданому рівні приналежності рівноможливими, автор виводить ступінь ризику неефективності проекту () через геометричну ймовірність події попадання точки (NPV, G) в зону неефективних інвестицій

    (17)

    Тоді підсумкове значення ступеня ризику неефективності проекту він отримує з рівняння (18)

    (18)

    В / 6 / він розглядає окремий випадок, коли обмеження визначено чітко рівнем G. З урахуванням формули (18) і довгому ланцюгу перетворень, автор отримує міру оцінки ступеня ризику інвестиційних проектів, яка виглядає так

    , (19)

    де

    , (20)

    (21)

    Таким чином, ступінь ризику V & M приймає значення від нуля до одиниці. Кожен інвестор, виходячи зі своїх інвестиційних переваг, може класифікувати значення V & M, виділивши для себе відрізок неприйнятних значень ризику.

    В / 15 / автор розглядає отриману оцінку ступеня ризику для різних способів уявлень чистого наведеного ефекту.

    Результат для випадку, коли критерій G представлений нечітким числом довільного виду, представлений автором в / 16 /.

    В роботі В.В.Каблукова / 2 / розглянута оцінка ризику, на основі імовірнісного підходу. Ризик оцінюється за допомогою системи критеріїв: критерію невизначеності, ліквідності і покриття. Критерій невизначеності являє собою дисперсію значень чистого наведеного ефекту. Для його розрахунку необхідний досить великий обсяг інформації про вхідних даних, що включає в себе і розподіл ймовірностей, і інформацію про кореляційної залежності. Розподіл задається, виходячи з припущень експертів, і несе в собі велику частку суб'єктивізму, а для отримання інформації про кореляційної залежності вимагає трудомістких додаткових досліджень. Вихідними даними цієї моделі є три критерії, значення яких необхідно порівняти між собою для отримання відповіді на питання про загальний рівень ризику проекту.

    Метод оцінки ризику, розроблений Недосекін А.О. / 6 /, спирається на теорію нечітких множин. Всі дані представлені нечіткими числами, а ризик розглядається як ймовірність попадання значення чистого наведеного ефекту в зону неефективних інвестицій. Чим більше ця ймовірність тим, відповідно, більше ризик. Це дійсно так, але оцінка ризику може вийти односторонньою, якщо в процесі інвестування не враховувати у скільки разів значення позикових коштів перевищує власні, а також проводити зіставлення отриманих в ході реалізації проекту результати з прогнозними.

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


    2 Спеціальна частина


    2.1 Опис моделі оцінки ризику інвестиційного проекту для ВАТ «Завод з виробництва труб великого діаметру» на основі моделі ризику стратегічного інвестиційного проекту

    Даний проект є стратегічним, тому для оцінки його ризику скористаємося розробленої Каблуковим В.В.в / 2 / моделлю.

    Система критеріїв стратегічного інвестиційного проекту в даній моделі складається з: ступеня невизначеності (ризику) результату, частки покриття позикового капіталу власним, ліквідності проекту та стратегічної значущості для суб'єкта.

    Формалізація четвертого критерію, на думку Каблукова В.В., можлива лише при обліку цілей конкретного проекту. В даному випадку вони полягають в тому, що, при здійсненні проекту зникає необхідність закупівлі мільйона тонн труб за кордоном, тобто сотні мільйонів доларів будуть залишатися в країні і інвестуватися в промисловість і при цьому буде обеспечіват певна незалежність країни від впливів іноземних держав. Крім цього передбачається здійснювати випуск труб, які відповідають певним параметрам: труби повинні витримувати температуру нижче 60 градусів, тиск в 250 атмосфер і володіти вкрай високими антикорозійними властивостями, крім цього, вони повинні бути одношовних і мати довжину 18 метрів.

    Дані критерії досить складно оцінити кількісно. В першу чергу виконання всіх параметрів впливає на собівартість продукції. Однак за оцінками експертів з Інституту з проектування металургійних заводів (Гипромеза), собівартість таких труб, випущених на заводі в Нижньому Тагілі, буде набагато менше ціни покупки зарубіжних аналогів. Без виконання цієї умови споруда заводу була б економічно невигідна. Тому при розробці моделі оцінки ризиків проекту даний критерій не враховувався.

    Наведемо модель оцінки ризику інвестиційного проекту без урахування критерію стратегічної значущості для суб'єкта:

    1) Критерій для обліку невизначеності (ризику) стратегічних інвестиційних проектів при залежних грошових потоках

    (22)

    де Vt - варіація (ризик) проекту в момент часу t, (грошові одиниці) 2

    n - число планово-облікових періодів проекту,

    i, j - номер планово-облікового періоду

    Sij - чисті грошові потоки, грошові одиниці,

    2 (Si) - дисперсія випадкової величини грошових потоків, (грошові одиниці) 2,

    Cov (Si, Sj) - коваріація між величинами Si і Sj, (грошові одиниці) 2,

    - коефіцієнт дисконтування, частки одиниці.

    2) Критерій покриття

    (23)

    де Сt - критерій покриття в момент часу t, частки одиниці,

    Аt - власний капітал суб'єкта в момент часу t, грошові одиниці,

    Zt - позиковий капітал в момент часу t, грошові одиниці.

    3) Критерій ліквідності стратегічного інвестиційного проекту

    (24)

    де Rt - коефіцієнт ліквідності в момент часу t, частки одиниці,

    NPVt - фактично отримана вартість стратегічного інвестиційного проекту (грошові потоки, отримані на момент часу t), грошові одиниці,

    I - початкові капіталовкладення, грошові одиниці.

    Ясно, що Rt - випадкова величина, її реалізації становлять значення коефіцієнта ліквідності стратегічного інвестиційного проекту за плановий період.

    Проект А буде вважатися вигідніше проекту В, якщо мають місце такі неравенcтва:

    E (NPV (A))? E (NPV (B))

    Vt (A)? Vt (B)

    Rt (A)? Rt (B), (25)

    де E (NPV (A)), E (NPV (B)) - математичні очікування чистого приведеного ефекту проектів.

    2.2 Проблеми, що виникають при використанні методу оцінки ризику інвестиційного проекту, заснованому на вероятностном підході.

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

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

    Так, наприклад значення відшкодування ПДВ з інвестицій та амортизація безпосередньо залежить від обсягу інвестицій, а приріст оборотних коштів від експлуатаційних витрат.

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

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

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

    2.3 Імітаційна модель отримання можливих сценаріїв величин грошових потоків

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

    На першому етапі потрібно визначити ключові фактори інвестиційного проекту. Наприклад, для даної розробки це будуть: доходи від реалізації продукції, відшкодування ПДВ з інвестицій, амортизація, величина інвестицій, включаючи ПДВ, приріст оборотних коштів, експлуатаційні витрати і податки.

    Далі необхідно визначити максимальне та мінімальне значення ключових факторів і задати характер розподілу ймовірностей. Значення даних інтервалів по всіх роках проекту було видано експертами. За характер розподілу було взято нормальне, оскільки, практика ризик-аналізу показує, що в переважній більшості випадків при оцінки ризику користується нормальний розподіл / 9 /.

    На основі обраного розподілу проводиться імітація ключових факторів, причому кількість імітацій повинно бути таким, щоб сукупність випадкових пробних значень могла вважатися репрезентативною. В даному випадку ця кількість склала 500 імітацій.

    Для генерації двох випадкових чисел, розподілених за нормальним законом, використовувався метод Морсальі-Брея. При цьому математичне сподівання вираховується як середина інтервалу розкиду числа, яке було отримано, як уже говорилося, від експертів. Дисперсія розраховувалася як середина довжини відрізка даного інтервалу.

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

    Математичне сподівання чистого приведеного ефекту розраховувалося за формулою (26)

    (26)

    де I - початкові капіталовкладення, грошові одиниці,

    N - число планово-облікових періодів проекту,

    I - номер планово-облікового періоду

    E (Si) -математичне очікування чистого грошового потоки в i-й обліковий період проекту, грошові одиниці,

    до - коефіцієнт дисконтування, частки одиниці.

    2.4 Побудова моделі оцінки ризику інвестиційного проекту при нечітких вхідних даних

    У запропонованій моделі як критерій для обліку невизначеності (ризику) стратегічного інвестиційного проекту було вибрано середньоквадратичне відхилення чистого приведеного ефекту (NPV) від його математичного очікування. Якщо за результатами розрахунків буде виявлено, що дисперсія досить велика, то ризик того, що очікуване значення NPV прийме заплановане значення, буде також досить великим.

    Поняття дисперсії, так само як і математичного очікування, функції розподілу і коваріації не визначене для нечітких чисел, тому використання формули (22) викликає певні труднощі. В результаті для обліку ризику була розглянута розроблена Недосекін А.О. оцінка можливості того, що за результатами інвестиційного процесу значення NPV виявиться нижче встановленого граничного рівня / 6 /. Таким чином, перший критерій оцінки ризику проекту буде обчислюватися за такою формулою

    (27)

    де

    , (28)

    . (29)

    де Risk (G) - ймовірність того, що значення чистого наведеного ефекту виявиться нижче встановленого граничного рівня, частки одиниці,

    G - рівень ефективності проекту, грошові одиниці,

    NPV min - мінімальне значення чистого наведеного ефекту із заданого діапазону, грошові одиниці,

    NPV m ах - максимальне значення чистого наведеного ефекту із заданого діапазону, грошові одиниці,

    NPV av - середнє значення чистого наведеного ефекту із заданого діапазону, грошові одиниці,

    б 1 - функція належності нечіткої числа NPV, частки одиниці.

    Ступінь ризику Risk (G) приймає значення від 0 до 1. Кожен інвестор, виходячи зі своїх інвестиційних переваг, може класифікувати значення Risk (G), виділивши для себе відрізок неприйнятних значень ризику. Можлива також більш детальна градація ступеня ризику, яка буде розглянута пізніше.

    Формула для оцінки ліквідності стратегічного інвестиційного проекту, в силу введення нечітких чисел в модель і описаних в літературному огляді операцій, прийме такий вигляд

    (30)

    де Rt 1 - мінімальне значення коефіцієнта ліквідності в момент часу t, частки одиниці,

    Rt 2 - середнє (найбільш очікуване) значення коефіцієнта ліквідності в момент часу t, частки одиниці,

    Rt 3 - максимальне значення коефіцієнта ліквідності в момент часу t, частки одиниці,

    Si 1 - мінімальне значення чистого грошового потоку в i-й планово-обліковий період, грошові одиниці,

    Si 2 - середнє значення чистого грошового потоку в i-й планово-обліковий період, грошові одиниці,

    Si 3 - максимальне значення чистого грошового потоку в i-й планово-обліковий період, грошові одиниці,

    1 - мінімальне значення безризикової ставки дисконтування, частки одиниці,

    2 - середнє значення безризикової ставки дисконтування, частки одиниці,

    3 - максимальне значення безризикової ставки дисконтування, частки одиниці,

    n - число планово-облікових періодів проекту,

    I - номер планово-облікових періодів,

    j - номер планово-облікового періоду на момент реалізації стратегічного інвестиційного проекту,

    NPVt - фактично отримана вартість стратегічного інвестиційного проекту (грошові потоки, отримані на момент часу t), грошові одиниці,

    I 1 -мінімальне значення первинних капіталовкладень, грошові одиниці,

    I 2 - максимальне значення первинних капіталовкладень, грошові одиниці,

    I 3 - середнє значення первинних капіталовкладень, грошові одиниці.

    Критерій покриття в рамках даної моделі оцінюється за такою формулою:

    (31)

    де Сt 1 - мінімальне значення критерію покриття в момент часу t, частки одиниці,

    Сt 2 - максимальне значення критерію покриття в момент часу t, частки одиниці,

    Аt 1 - мінімальне значення власного капіталу суб'єкта в момент часу t, грошові одиниці,

    Аt 2 - максимальне значення власного капіталу суб'єкта в момент часу t, грошові одиниці,

    Zt 1 - мінімальне значення позикового капіталу в момент часу t, грошові одиниці,

    Zt 2 - максимальне значення позикового капіталу в момент часу t, грошові одиниці.

    2.5 Опис нечітко-моножественной моделі прийняття рішення для складних систем

    Для отримання однозначної відповіді про рівень ризику інвестиційного проекту на основі отриманих даних необхідно ввести процедуру прийняття рішення. Така процедура описана Смирновим А.П. в / 17 /.

    Оператор оцінює вхідні дані за допомогою суб'єктивних якісних понять типу "багато", "мало" і т.п. Ці якісні оцінки значень змінних u формалізуються за допомогою так званих лінгвістичних змінних / 11 /.

    Модель управління в даному випадку є модель зв'язку між вхідними змінними u і вихідний змінної v. Механізм цієї зв'язку включає судження оператора про значеннях змінних. В результаті на основі чисельного значення кожної з вхідних змінних оператор присвоює їм якісні (нечіткі) значення. Своє рішення він також приймає на основі нечіткого значення вихідної змінної. Це означає, що оператор інтуїтивно користується нечіткою логікою, а конкретно - правилами нечіткого виведення.

    Правила спочатку формулюються за допомогою умов (словесних описів значень вхідних змінних). Кожне правило являє собою текст, який визначає деякий нечітке відношення R між вхідними змінними u і вихідний змінної v. Позначимо порядковий номер правила через L.

    Для перетворення тексту правила в формальну процедуру потрібно встановити вид правила композиційного виведення і форму нечіткої імплікації.

    Як правила композиційного виведення для розглянутого класу систем може бути прийнята Максиміна композиція, а в якості нечіткої імплікації - правило мінімуму (перетин нечітких множин передумови та ув'язнення).

    Нечітке відношення R для L-го правила між j-й вхідний змінної u j і вихідної змінної v відповідно до прийнятого правилом мінімуму виражено наступною функцією приналежності

    (32)

    Тут індекс i (L) означає індекс i-го терма в L-му правилі виведення. Функція приналежності (31) відображає ставлення зв'язку між числовими значеннями в парі (u j, v). Чим більше її значення, тим тісніше цей зв'язок.

    Результати вимірювання (спостереження) вхідних змінних можуть бути виражені як звичайними числовими (чіткими) значеннями, так і якісними або розмитими значеннями (нечіткими числами).

    Нехай вхідні змінні u j представлені нечіткими числами f j з функціями належності fj (u j).Зауважимо, що ці функції є результат роботи системи спостереження (вимірювання) на відміну від раніше введених функцій ji (u j), які висловлюють думку експерта-оператора з приводу конкретних значень u j. Тоді відповідно до прийнятого правилом композиційного виведення можна записати зв'язок між вихідної змінної v і вхідної змінної u j наступним чином

    (33)

    Тут M j (v) є функція приналежності, що встановлює локальну зв'язок між нечіткої вхідної змінної u j і нечіткої вихідної змінної v.

    Якщо система спостереження дає конкретні числові значення u j = E j, то формула (33) перетворюється до наступного вигляду

    (34)

    Оскільки в L-му правилі логічного висновку вихідні посилання пов'язані логічним «і» (тобто наявністю даних про всі чотирьох вхідних змінних для виведення значення вихідної змінної), то відповідна операція над нечіткими множинами реалізується у вигляді їх перетину. Останнє ж реалізується / 18 / за допомогою операції мінімуму над відповідними функціями належності. Позначимо нечітка множина, відповідне вихідної змінної v і отримане на підставі L-го правила виведення через Q L, а його функцію приналежності через QL (v). Тоді можна записати

    (35)

    Дані про вихідний змінної, отримані з усіх правил виведення, повинні бути логічно об'єднані. Це відповідає операції максимуму над функціями належності / 18 /. Позначивши через Q результуюче нечітка множина, відповідне вихідної змінної v, а через Q (v) - його функцію приналежності, остаточно запишемо

    (36)

    Тепер потрібно оцінити конкретне значення v * для прийняття рішення про рух даної плавки. Ця процедура називається дефазифікації. Запропоновано використовувати найбільш поширений метод дефазифікації / 18 / - знаходження центра ваги функції приналежності

    (37)

    Тут V- область визначення (універсальне безліч) функції м Q (v).

    Таким чином, отримана модель використовує вхідні переменниe u j, мають чіткі значення, і видає вихідну змінну v також у чіткому вигляді., В той час як внутрішня структура моделі є нечіткою.

    2.6 Опис нечітких даних для моделі прийняття рішення про ризик інвестиційного проекту

    В якості вхідної інформації (вхідних змінних моделі) виступають наступні параметри: оцінка ризику проекту за першим критерієм (ймовірність попадання в зону неефективності), оцінка ризику проекту за другим критерієм (критерій ліквідності), оцінка ризику по третьому критерію (критерій покриття).

    Якісні оцінки цих критеріїв формалізуються за допомогою лінгвістичних змінних А 1, А 2, А 3 відповідно.

    Лінгвістична змінна A j (j = 1,3) характеризується наступним набором

    j, T (A j), U j>, (38)

    де A j - назва змінної,

    T (A j) - безліч значень змінної (безліч термів),

    U j - універсальне безліч відповідної базової змінної u j.

    Нижче наведені значення компонент зазначеного набору:

    - A 1 = "Рівень ризику для першого критерію", T (A 1) = "мінімальний, підвищений, критичний, неприпустимий".

    - A 2 = "Рівень ризику для другого критерію", T (A 2) = "мінімальний, підвищений, критичний, неприпустимий".

    - A 3 = "Рівень ризику для третього критерію", T (A 3) = "мінімальний, підвищений, критичний, неприпустимий".

    Така градація ступеня ризику взята з класифікації ризиків Каблукова В.В., де він описує дані категорії наступним чином: мінімальна ступінь допустимості ризику характеризується рівнем можливих втрат розрахункового прибутку в межах 0 - 25%, підвищена ступінь - 25 - 50%, критична - 50 - 70%, неприпустима - 75 - 100%.

    Кожному безлічі T (A j) відповідають чотири терма T ji (A j).

    Кожен терм T ji (A j) (i = 1,4) характеризується функцією приналежності ji (u j), яка визначена на відповідному універсальній множині U j і відображає суть даного терма.

    Наведемо сформовані функції приналежності для першого критерію оцінки ризику. Тут До 1, К 2, К 3 - межі інтервалів для відповідних рівнів ризику. Кордоном для неприпустимого рівня є одиниця. Значення даних інтервалів можна отримати з експертного опитування.

    Мінімальний рівень ризику для першого критерію

    (39)

    Підвищений рівень ризику для першого критерію

    (40)

    Критичний рівень ризику для першого критерію

    (41)

    Неприпустимий рівень ризику для першого критерію

    (42)

    Опишемо функції приналежності до ризику для критерію ліквідності. Тут теж використовуються межі інтервалів для відповідних рівнів ризику До 1, К 2, К 3. Де До 1 - це межа неприпустимого рівня ризику, К 2 - критичного, К 3 - підвищеного, межею мінімального рівня є одиниця. Значення даних інтервалів можна отримати з експертного опитування.

    Оскільки в результаті розрахунків ми отримуємо три значення коефіцієнта, які характеризують мінімальну (Rt 1), середнє (найбільш очікуване) (Rt 2) і максимальне значення (Rt 3) критерію, то для згортки цих значень скористаємося наступною формулою

    (43)

    Сформуємо функції приналежності коефіцієнта ліквідності до введеної лінгвістичної змінної:

    Мінімальний рівень ризику для другого критерію

    (44)

    Підвищений рівень ризику для другого критерію

    (45)

    Критичний рівень ризику для другого критерію

    (46)

    Неприпустимий рівень ризику для другого критерію

    (47)

    Опишемо функції приналежності для критерію покриття. Тут також використовуються межі інтервалів для відповідних рівнів ризику До 1, К 2, К 3, де К 1 - це межа неприпустимого рівня ризику, К 2 - критичного, К 3 - підвищеного. Кордоном мінімального рівня є одиниця. Значення даних інтервалів можна отримати з експертного опитування.

    Оскільки в результаті розрахунків ми отримуємо два значення, які характеризують мінімальну (Сt 1) і максимальне значення (Ct 2) критерію, то для згортки цих значень скористаємося наступною формулою

    (48)

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

    (49)

    Підвищений рівень ризику для третього критерію

    (50)

    Критичний рівень ризику для третього критерію

    (51)

    Неприпустимий рівень ризику для третього критерію

    (52)

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

    , (53)

    де B - назва змінної (B = «Рівень ризику проекту»);

    T (B) - безліч умов (T (B) = «мінімальний», «підвищений», «критичний», «неприпустимий»);

    V - універсальна множина базової змінної v (в частках одиниці).

    Значення функції приналежності k (v) термів T k (B) (k = 1,4) також можуть бути отримані з експертної інформації.

    Сформуємо функції приналежності ризику проекту до введеної лінгвістичної змінної. Тут До 1, К 2, К 3 - межі інтервалів для відповідних рівнів ризику. Кордоном для неприпустимого рівня є одиниця. Значення даних інтервалів можна отримати з експертного опитування. Мінімальний рівень ризику проекту

    , (54)

    де RE - рівень ризику інвестиційного проекту, (частки одиниці).

    Підвищений рівень ризику для першого критерію

    (55)

    Критичний рівень ризику для першого критерію

    (56)

    Неприпустимий рівень ризику для першого критерію

    (57)

    Сенс нечіткого висновку полягає в наступному. Якщо А - причина (передумова), а В- результат (висновок), то можна визначити нечітке відношення R відповідності між А і В, сенс якого відображається в знанні: з А швидше за все слід В. Це знання виражено формулою R = АВ (де це символ нечіткої імплікації). Тоді зв'язок між нечіткої передумовою А і нечітким висновком В можна записати у вигляді

    B = AR = A (AB), (58)

    де значок - це правило композиційного виведення (правило згортки).

    У розглянутій логічній системі передумови визначаються лінгвістичними змінними А 1, А 2, А 3, а висновок - лінгвістичної змінної В. У кожному конкретному правилі є три передумови (по числу вхідних змінних) і один висновок. Кожне таке логічне правило визначає одне з можливих станів об'єкта управління, а повний набір правил характеризує всі можливі стани / 17 /. Оскільки кожна з трьох передумов має чотири значення відповідної лінгвістичної змінної, а в правилах виводу повинні бути присутніми всі комбінації значень, то загальне число правил дорівнює 4 3 = 64.

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


    3 Аналіз результатів

    3.1 Обгрунтування вибору середовища програмування

    Програма була написана в Delphi 7.0. Це середовище є середовищем розробки, яка використовує багато ідей і концепції, закладені в графічному інтерфейсі користувача Windows. Delphi надає широкі можливості управління додатками.

    Delphi має широкий набір можливостей, починаючи від форм і закінчуючи підтримкою всіх форматів популярних баз даних.

    Характерні риси Delphi:

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

    - вбудовані шаблони форм і додатків, які можна використовувати для швидкої розробки власних прикладних програм.

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

    - широкі можливості доступу до даних.

    3.2. опис програми

    Програма «Оцінка ризику інвестиційного проекту» аналізує ступінь ризику проекту і видає результат про його рівні в частковому відношенні.

    Ризик інвестиційного проекту оцінюється на основі трьох показників: ймовірності попадання в зону неефективності інвестицій, критерію покриття і критерію ліквідності, які були описаний вище.

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

    Розглянемо основні елементи призначеного для користувача інтерфейсу. Структура початкового вікна програми зображена на малюнку А1 додатка А.

    Таким чином, програма включає в себе два основних етапи: оцінка ризику, заснована на імовірнісному підході та оцінка ризику при нечітких вхідних даних.

    Перший етап передбачає введення вихідної інформації в наступні таблиці: значення коефіцієнта дисконтування, значення величин власного і позикового капіталу суб'єкта, прогнозовані чисті грошові потоки, чисті грошові потоки, отримані в ході реалізації інвестиційного проекту, матриця ковариаций випадкових величин грошових потоків, а також значення первинних грошових капіталовкладень. Діалогове вікно введення інформації в усі перераховані вище таблиці представлено на малюнку А2 додатки А.

    Головне меню даного вікна містить опції: файл, розрахувати. Опція «файл» містить в собі процедури збереження введених даних і відкриття файлу даних, а опція «розрахувати» - пункти формування грошових потоків та аналіз результатів.

    При виборі пункту формування грошових потоків з'являється вікно, зображене на малюнку А3 додатка А.

    Дана форма передбачає введення інформації про випадкових складових проекту для формування їх можливих значень. Всі введені дані можна зберегти, вибравши відповідну опцію в меню файл. Також передбачається і автоматичне введення інформації при активізації опції «відкрити» меню файл.

    При завантаженні форми «Формування грошових потоків» в таблиці «Надходження коштів» і «Витрата грошових коштів» включені назви деяких передбачуваних складових, які можна за бажанням змінити, видалити або додати нові, вибравши в меню «Правка» відповідні опції.

    Опція меню «Сформувати» на основі вихідних даних про інтервали значень випадкових складових грошового потоку проводить імітації можливих сценаріїв і розраховує такі величини як математичне очікування, дисперсія і коваріація чистих грошових потоків при нормальному розподілі випадкових величин. Всі результати імітації розміщуються у відповідні таблиці попереднього вікна, а описується вікно автоматично закривається.

    При виборі опції «Аналіз результатів», що знаходиться в пункті меню «Розрахувати» основного вікна «Оцінка ризику проекту на основі імовірнісного підходу» відбувається аналіз введеної інформації і розраховуються значення трьох показників для кожного періоду проекту. Ці дані містяться в таблицю результатів, що знаходиться на формі «Аналіз результатів». Дана форма показана на малюнку А4 додатка А.

    При початковому виборі методу оцінки ризику інвестиційного проекту на основі нечітко-множинного підходу завантажується вікно, показане на малюнку А5 додатка А.

    Дана форма передбачає введення вихідної інформації в наступні таблиці: інтервали значень коефіцієнтів дисконтування, інтервали значень величин власного і позикового капіталу суб'єкта для кожного планово-облікового періоду, інтервали чистих грошових потоків, а також інтервал значення первинних грошових капіталовкладень.

    Головне меню показаного вікна містить опції: файл і дані. Опція «файл» містить в собі процедури збереження введених даних і відкриття файлу даних, а опція «дані» - пункти: формування грошових потоків, коефіцієнт ліквідності, аналіз ризику проекту, формування рівнів ризику, формування правил виведення.

    При виборі пункту меню «Формування грошових потоків» з'являється вікно, аналогічне зображеному на малюнку А3 додатка А.

    Даний пункт допомагає розрахувати значення кінцевих інтервалів чистих грошових потоків при вхідних нечітких даних. Він передбачає введення інформації про інтервали складових грошового потоку.

    Опція меню «Сформувати» даного вікна на основі вихідних даних про інтервалах значень складових грошового потоку робить розрахунок кінцевих інтервалів грошового потоку для кожного періоду проекту і поміщає результати в відповідні таблиці попереднього вікна, а описується вікно автоматично закривається.

    При виборі опції «Коефіцієнт ліквідності», що знаходиться в пункті меню «Дані» основного вікна «Оцінка ризику проекту» з'являється вікно, показане на малюнку А6 додатка А.

    Якщо дана опція не була обрана, то облік ризику проекту відбувається тільки за двома критеріями. При введенні ж відповідної інформації в таблиці: коефіцієнти дисконтування, отримані значення чистих грошових потоків, а також величини початкових капіталовкладень, облік ризику проводиться на основі трьох критеріїв.

    При виборі опції «Формування рівнів ризику» з'являється вікно, показане на малюнку А7 додатка А.

    Дана форма передбачає введення значень меж інтервалів, які відповідають різним рівням ризику для кожного критерію.

    При виборі опції «Формування правил виведення» з'являється вікно, показане на малюнку А8 додатка А.

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

    При виборі опції «Розрахунок ризику проекту» відбувається аналіз введеної інформації, розраховуються значення показників для кожного періоду проекту, і робиться висновок про рівень ризику. Кінцевий результат з'являється на нижній панелі вікна. Якщо необхідна більш детальна інформація, то потрібно натиснути кнопку «Звіт».

    При натисканні цієї кнопки завантажується форма звіту, показана на малюнку А9 додатка А. Текст програми приведений в додаток Б.

    3.3 Оцінка ризику інвестиційного проекту ВАТ «Завод з виробництва труб великого діаметру» із застосуванням теорії ймовірностей

    Вихідні дані для проведення оцінки ризику інвестиційного проекту були надані інститутом з проектування металургійних заводів (Гипромеза).

    Для розрахунку значення критерію покриття були взяті дані з таблиці 3.

    Таблиця 3 - Схема фінансування будівництва заводу з виробництва труб великого діаметру,%

    Джерела фінансування

    Періоди проекту, роки

    4

    5

    6

    7

    8

    9

    10

    11

    12

    Власні кошти - акціонерний капітал

    31,3

    41,0

    36,6

    35,0

    48,0

    61,0

    74,0

    87,0

    100

    Позикові кошти

    68,7

    59,0

    63,4

    65,0

    52,0

    39,0

    26,0

    13,0

    0

    Оскільки виявилося досить важко оцінити інтервали разбросов чистих грошових потоків, то для його формування були використані складові, представлені в таблиці 4.

    Спочатку проводилася оцінка ризику проекту на основі імовірнісного підходу. Для цього за допомогою програми були розраховані математичне очікування, дисперсія і коваріація грошового потоку для кожного періоду проекту. Значення першого представлені в таблиці 4, а останніх двох величин - в таблиці В1 додатка В. В даній таблиці дисперсії знаходяться на головній діагоналі.

    Розрахунок ризику проекту почали з четвертого року, а за початкові капіталовкладення взяли середню суму вкладень на будівництво заводу, необхідну за три перші роки з початку будівництва, тобто I дорівнювало 17020 мільйонів рублів. Норма дисконту дорівнювала 10%.

    Значення критеріїв невизначеності (Vt), ліквідності (Rt) і покриття (Ct), а також чистого наведеного ефекту (NPVt) для кожного планово-облікового періоду проекту, розраховані програмою, показані в таблиці 5.

    Таблиця 4 - Потоки фінансових коштів для оцінки ризику проекту, млн.руб.

    Назва складових

    Планово-облікові періоди проекту, роки

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    Надходження грошових коштів

    Доходи від реалізації продукції

    0

    0

    0

    9333

    15484

    15824

    15824

    15824

    15824

    15824

    15824

    15824

    15824

    15824

    15824



    d>

    0

    0

    0

    11541

    19146

    19567

    19567

    19567

    19567

    19567

    19567

    19567

    19567

    19567

    19567

    Відшкодування ПДВ з інвестицій

    0

    0

    0

    2116

    2039

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    2539

    2447

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    амортизація

    0

    0

    0

    1012

    1 778

    1 778

    1 778

    1 778

    1 778

    1 778

    1 778

    1 778

    1 778

    1 778

    1 778

    0

    0

    0

    1214

    2134

    2134

    2134

    2134

    2134

    2134

    2134

    2134

    2134

    2134

    2134

    Витрата грошових коштів

    Інвестиції, включаючи ПДВ

    3353

    4320

    9347

    7907

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    4024

    5184

    11216

    9488

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    Приріст оборотних коштів

    0

    0

    0

    630

    235

    12

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    696

    260

    14

    0

    0

    0

    0

    0

    0

    0

    0

    0

    експлуатаційні витрати

    0

    0

    0

    6302

    8656

    8775

    8775

    8775

    8775

    8775

    8775

    8775

    8775

    8775

    8775

    0

    0

    0

    6966

    9568

    9699

    9699

    9699

    9699

    9699

    9699

    9699

    9699

    9699

    9699

    податки

    0

    0

    0

    916

    1906

    тисяча дев'ятсот тридцять чотири

    1910

    1886

    1861

    тисячу вісімсот тридцять сім

    1813

    1 788

    1764

    1740

    1715

    0

    0

    0

    1120

    2330

    2364

    2334

    2305

    2275

    2245

    2215

    2186

    2156

    2126

    2097

    Математичне очікування

    -3353

    -4320

    -9347

    -1319

    1053

    8156

    8107

    8235

    8115

    8151

    8255

    8374

    8502

    8256

    8426

    Таблиця 5 - Результат оцінки ризику інвестиційного проекту на основі імовірнісного підходу,

    період проекту

    Ct, частки одиниці

    NPVt, млрд. Руб.

    Vt, (млрд. Руб.) 2

    у 2, млрд. руб.

    1

    2

    3

    4

    5

    4

    0,58

    -14,54

    660,89

    0,81

    5

    0,92

    -8,24

    1878,80

    1,37

    6

    1,56

    -3,63

    2952,54

    1,72

    7

    2,85

    0,53

    3784,71

    1,94

    8

    6,69

    4,37

    4832,95

    2,20

    9

    100,00

    7,81

    5846,83

    2,42

    10

    100,00

    10,95

    6698,38

    2,59

    11

    100,00

    13,84

    7286,51

    2,70

    12

    100,00

    16,51

    7583,38

    2,76

    13

    100,00

    18,98

    7693,57

    2,77

    14

    100,00

    21,15

    8045,46

    2,84

    15

    100,00

    23,17

    8373,56

    2,89

    Так як критерій невизначеності являє собою дисперсію чистого наведеного ефекту, то для простоти сприйняття в таблицю доданий останній стовпчик, що показує величину середньоквадратичного відхилення (у 2).

    Графік залежності значення середньоквадратичного відхилення і чистого наведеного ефекту показаний на малюнку 1.

    Малюнок 1 - Залежність середньоквадратичного відхилення від значення NPVt

    Як видно з малюнка зі збільшенням значення NPVt збільшується і коефіцієнт невизначеності, що, відповідно, збільшує ризик проекту в цілому з одного боку. З іншого критерій покриття весь час збільшується, тобто відбувається зниження ризику проекту. Коефіцієнт же ліквідності не включений в цю таблицю, оскільки якщо брати для його розрахунку середні значення, тобто математичні очікування, чистих грошових потоків він буде, відповідно, завжди дорівнює одиниці. Ризик за таким показником визначити досить складно. Кінцеве значення дисперсії одно 2,89 мільярда рублів. Питання про те чи готовий інвестор пожертвувати цією сумою і на скільки він може довіряти цій оцінці залишається за ним.

    3.4 Застосування математичного апарату нечітких множин для оцінки ризику проекту

    При аналізі ризику інвестиційного проекту на основі нечітко-множинного підходу були взяті інтервали чистих грошових потоків, розраховані на основі даних з таблиці 4. Значення нечітких чисел чистих грошових потоків, розраховані за допомогою програми, представлені в таблиці 6. Тут S min - означає нижню межу інтервалу, S av - середню, а S max - верхню, S i, (i = 4..12) - планово-облікові періоди проекту.

    Таблиця 6 - Значення нечітких чисел чистих грошових потоків, млрд. Руб.

    S 4

    S 5

    S 6

    S 7

    S 8

    S 9

    S 10

    S 11

    S 12

    S 13

    S 14

    S 15

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    S min

    -5,81

    7,14

    5,52

    5,57

    5,60

    5,63

    5,62

    5,69

    5,72

    5,75

    5,78

    5,81

    S av

    -3,06

    8,99

    7,39

    7,43

    7,46

    7,49

    7,49

    7,54

    7,57

    7,60

    7,62

    7,65

    S max

    -0,46

    12,92

    10,98

    11,02

    11,04

    11,06

    11,06

    11,11

    11,14

    11,16

    11,19

    11,21

    Норма дисконту була взята незмінною і дорівнювала 10%. Значення часткою власних і позикових коштів також передбачалися незмінними. Значення критерію ефективності було взято на основі передбачуваного щорічного доходу в період погашення кредитів. Таким чином, G дорівнювало 2700 мільйонів рублів. Значення первинних капіталовкладень розраховувалося як нечітке число в інтервалі від 17020 до 20424 мільйонів рублів.

    Рівні ризику для коефіцієнта ліквідності і покриття були взяті такі: До 1 = 0,25 До 2 = 0,50, К 3 = 0,75. Для критерію ймовірності попадання в зону неефективних інвестицій були взяті такі рівні ризику: До 1 = 0,05, К 2 = 0,10, К 3 = 0,20 ,. Дані значення представлені в частках одиниці.

    Функції приналежності до рівнів ризику мають вигляд, представлений в формулах (59) - (72)

    Мінімальний рівень ризику для ймовірності потрапляння в зону неефективних інвестицій

    (59)

    Підвищений рівень ризику для ймовірності потрапляння в зону неефективних інвестицій

    (60)

    Критичний рівень ризику для ймовірності потрапляння в зону неефективних інвестицій

    (61)

    Неприпустимий рівень ризику для ймовірності потрапляння в зону неефективних інвестицій

    (62)

    Узагальнений критерій ліквідності

    (63)

    Мінімальний рівень ризику для критерію ліквідності

    (64)

    Підвищений рівень ризику для критерію ліквідності

    (65)

    Критичний рівень ризику для критерію ліквідності

    (66)

    Неприпустимий рівень ризику для другого критерію

    (67)

    Узагальнений критерій коефіцієнта покриття

    (68)

    Мінімальний рівень ризику для критерію покриття

    (69)

    Підвищений рівень ризику для критерію покриття

    (70)

    Критичний рівень ризику для критерію покриття

    (71)

    Неприпустимий рівень ризику для критерію покриття

    (72)

    Результати аналізу без урахування коефіцієнта ліквідності представлені в таблиці 7. У графах рівень для Ct і Risk (G) введено такі позначення ризику: м - мінімальний, п - підвищений, до - критичний, н - неприпустимий.

    Таблиця 7 - Результати оцінки ризику без урахування коефіцієнта ліквідності

    періоди проекту

    сt

    NPVt

    Risk (G)

    Загальний ризик проекту

    значення

    рівень ризику

    значення

    рівень ризику

    1

    2

    3

    4

    5

    6

    7

    4

    0,54

    н

    (-25,70; -19,80; -17,44)

    1,00

    н

    0,84 - н

    5

    0,92

    м

    (-18,80; -12,37; -6,75)

    1,00

    н

    0,78 - н

    6

    1,56

    м

    (-15,65; -6,82; 1,50)

    1,00

    н

    0,78 - н

    7

    2,85

    м

    (-11,85; -1,74; 9,02)

    0,89

    н

    0,78 - н

    8

    6,69

    м

    (-8,37; 2,89; 15,87)

    0,42

    н

    0,78 - н

    9

    1,00

    м

    (-5,19; 7,12; 22,12)

    0,12

    до

    0,38 - п

    10

    1,00

    м

    (-2,29; 10,98; 27,81)

    0,04

    м

    0,16 - м

    11

    1,00

    м

    (0,36; 14,49; 32,99)

    0,01

    м

    0,16 - м

    12

    1,00

    м

    (2,79; 17,70; 37,72)

    0,00

    м

    0,16 - м

    13

    1,00

    м

    (5,00; 20,63; 42,02)

    0,00

    м

    0,16 - м

    14

    1,00

    м

    (7,02; 23,30; 45,94)

    0,00

    м

    0,16 - м

    15

    1,00

    м

    (8,88; 25,74; 49,51)

    0,00

    м

    0,16 - м

    Покажемо на малюнку 2 залежність рівня ризику від часу.

    Малюнок 2 - Зміни рівня ризику протягом життєвого циклу проекту

    Як видно з малюнка рівень ризику на десятому році життя проекту стає мінімальним. Це пояснюється тим що з цього року за планом підприємство повністю закінчить віддачу боргів по кредиту, тобто співвідношення власних коштів до позикових буде на рівні мінімального ризику, а ймовірність того, що чистий наведеної ефект буде менше заданого рівня ефективності буде близька до нуля. Те що рівень ризику падає з плином часу говорить про правильність обраних методів щодо зниження ризику. При цьому дані оцінки не спираються на суб'єктивні думки експерта. Оскільки він лише визначає межі ризиків, але не зачіпає при цьому прогнози про стан середовища в майбутньому.

    Результат розрахунку ризику інвестиційного проекту з урахуванням коефіцієнта ліквідності представлені в таблиці 8. За значення величин грошових потоків для підрахунку коефіцієнта ліквідності були взяті найбільш очікувані.

    Таблиця 8 - Аналіз ризику інвестиційного проекту з урахуванням коефіцієнта ліквідності

    періоди проекту

    сt

    NPVt

    Rt

    Vt

    Загальний ризик

    значення

    рівень

    значення

    рівень

    значення

    рівень

    1

    2

    3

    4

    5

    6

    7

    8

    9

    4

    0,54

    н

    -19,80

    (0,77; 1,00; 1,14)

    н

    1,00

    н

    0,84 - н

    5

    0,92

    м

    -12,37

    (0,62; 1,00; 1,83)

    н

    1,00

    н

    0,78 - н

    6

    1,56

    м

    -6,82

    (0,44; 1,00; 0,00)

    н

    1,00

    н

    0,84 - н

    7

    2,85

    м

    -1,74

    (0,15; 1,00; 0,00)

    н

    1,00

    н

    0,84 - н

    8

    6,69

    м

    2,89

    (1,00; 1,00; 0,18)

    м

    0,00

    м

    0,17 - м

    9

    1,00

    м

    7,12

    (1,00; 1,00; 0,32)

    м

    0,00

    м

    0,16 - м

    10

    1,00

    м

    10,98

    (1,00; 1,00; 0,39)

    м

    0,00

    м

    0,16 - м

    11

    1,00

    м

    14,49

    (39,91; 1,00; 0,44)

    м

    0,00

    м

    0,16 - м

    Продовження таблиці 8

    1

    2

    3

    4

    5

    6

    7

    8

    9

    12

    1,00

    м

    17,70

    (6,35; 1,00; 0,47)

    м

    0,00

    м

    0,16 - м

    13

    1,00

    м

    20,62

    (4,12; 1,00; 0,49)

    м

    0,00

    м

    0,16 - м

    14

    1,00

    м

    23,29

    (3,31; 1,00; 0,51)

    м

    0,00

    м

    0,16 - м

    15

    1,00

    м

    25,73

    (2,90; 1,00; 0,52)

    м

    0,00

    м

    0,16 - м

    Покажемо зміна рівня ризику проекту в часі на малюнку 3

    Малюнок 3 - Зміна рівня ризику проекту в часі

    Як видно з малюнка рівень ризику стає мінімальним вже на восьмому році життя проекту на відміну від наведеного раніше. Це пояснюється тим, що при введенні в модель коефіцієнт ліквідності значення чистого наведеного ефекту стає рівним середньому значенню інтервалу, а воно стає більше критерію ефективності як раз в цей період, тим самим істотно знижуючи рівень ризику проекту в цілому.

    Як видно з наведених прикладів значення, отримані за допомогою другої моделі, більш чутливі до зовнішніх змін середовища.


    4 Безпека життєдіяльності


    4.1 Ідентифікація небезпечних і шкідливих виробничих факторів

    Робота з програмою розробленою в ході дипломної роботи пов'язана з небезпечними і шкідливими виробничими факторами. Основними повреждающими здоров'я факторами при роботі за комп'ютером є: тривала гіподинамія (будь-яка поза при тривалій фіксації шкідлива для опорно-рухового апарату, крім того, веде до застою крові у внутрішніх органах і капілярах); нефізіологічне положення різних частин тіла; тривало повторюються однакові руху (тут шкідлива не тільки втома тих груп м'язів, які ці рухи виконують, але і психологічна фіксація на них (утворення стійких вогнищ збудження ЦНС з компенсаторним гальмуванням інших її ділянок); світлове, електромагнітне та інше випромінювання (в основному монітора) ; довге перебування в замкнутому, задушливому приміщенні.

    Сучасні відеотерміналів, обладнані електронно-променевими трубками, випромінюють в навколишній простір широкий спектр електромагнітних хвиль. Електрони, емітовані катодом і прискорені другим анодом, б'ючись об лінзу кінескопа, випромінюють в простір ультракороткі хвилі (гальмівне випромінювання), подібний ефект спостерігається в рентгенівських трубках. Крім того, утворюється м'яке рентгенівське випромінювання при вибиванні пучком електронів вторинних електронів з анода. Також в спектрі представлені сантиметрові і дециметрові хвилі, здатні впливати на шкіру.

    Кінескопи, особливо кольорові, де діють три катодних променя, мають властивість накопичувати статичні заряди на поверхні екрану. Добре помітні дві ознаки цього: скляна поверхня притягує частинки пилу, які прилипають до скла, а після виключення кольорового монітора чути легке потріскування. Статичне поле може накопичуватися на одязі і тілі і негативно впливати на шкіру, викликаючи її роздратування. Исследования показали, что напряженность электрического поля между экраном видеотерминала и оператором составляет 5 - 15 кВ/м, что не выше нормы, но приводит к загрязнению экрана и притягивания к нему отрицательных ионов и частиц пыли.

    Работа за дисплеем создает большую нагрузку для глаз, так как по качеству передачи информации обычный кинескоп все еще сильно уступает белой бумаге с нанесенной на нее черной типографской краской. Глаза считывающего текст с дисплея должны компенсировать низкое качество воспроизведения. Проблема усугубляется еще и тем, что при вводе текста или иной информации в компьютер сотни, тысячи раз в день глаза человека должны перестраиваться с одного способа чтения на другой, глаза перебегают с бумаги (отражение света) на экран (излучение света) и обратно.

    Жалобы на те или иные расстройства зрения составляют от 62 % до 94 % работающих, которые заняты работой за ПЭВМ более половины дня:

    усталость глаз - до 4 - 5 %;

    сильные боли и ощущение песка в глазах - до 31 %;

    зуд в глазах к концу рабочего дня - до 50 %.

    Расстройство органов зрения резко увеличивается при работе более 4 часов в день. Это доминирующий вредный фактор при работе на ПЭВМ. Нагрузка на органы зрения и постоянный напряженный характер труда вызывает нарушение функционального состояния зрительного анализатора и центральной нервной системы. Это проявляется в снижении устойчивости ясного видения, остроты зрения и аккомодации, частые случаи заболевания блейфоритом и конъюнктивитом.

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

    Анализ потенциально опасных и вредных факторов, сопутствующих выполняемым в работе на ПЭВМ операций, приведен в соответствии с действующими нормативами. Результаты представлены в таблице 9.

    Таблица 9 - Анализ опасных и вредных производственных факторов

    Операция

    Используемые оборудование и вещества

    Опасные и вредные факторы

    Нормируемое значение параметров

    классификация

    перечень

    1

    2

    3

    4

    5

    Включение и выключение оборудования

    Рубильники, устройства запуска ПЭВМ

    Физический

    Повышенная напряженность электрического поля

    f = 5 Гц - 2 кГц Е пду = 25 В/м f = 2 - 400 кГц Е пду = 2,5 В/м

    на расстоянии 50 см вокруг ВДТ

    Проведение проектных работ

    Дисплей

    Физический

    Повышенный уровень ионизирующих излучений в рабочей зоне

    ПДД = 20 мЗв/год

    Продолжение таблицы 9

    1

    2

    3

    4

    5

    Физический

    Недостаточная освещенность рабочей зоны

    E н = 300 лк

    Компьютер с процессором Intel Celeron c тактовой частотой 600 МГц

    Физический

    Опасный уровень напряжения в электрической цепи, замыкание, которое может произойти через тело человека

    U пр = 2 B, I ч = 0,3 мА,

    f = 50 Гц

    Запись на жесткий и гибкий магнитные диски

    Жесткий диск, дисковод

    Физический

    Повышенный уровень магнитного поля

    f = 5 Гц - 2 кГц H пду = 250 нТл f = 2 - 400 кГц H пду = 25 нТл

    на расстоянии 50 см вокруг ВДТ

    4.2 Санитарно-технические требования

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

    4.2.1 Требования к планировке помещения

    Дипломная работа выполнялась в помещении площадью 24 м 2 объемом 84м 3. В комнате установлено 3 компьютера. На одного работающего приходится 8м 2, 28 м 3 рабочего пространства, что соответствует СанПиН 2.2.2.542-99 (гигиенические требования к видеодисплейным терминалам, ПЭВМ и организации работы: норма площади помещения 6 м 2, V = 20 м 3).

    Размещение оборудования обеспечивает безопасный проход по комнате.

    4.2.2 Требования к микроклимату помещения

    Выполняемые работы в проектном отделе относятся к категории 1а-работы: выполняемые сидя, с энергозатратами 139 Вт.

    Нормирование параметров микроклимата производится в соответствии с ГОСТ 12.1.005-88 (таблица 10

    Таблица 10 - Нормирование параметров микроклимата

    Параметры

    Относительная влажность, %

    Скорость движения

    воздуха, м/с

    Температура воздуха °С

    Нормированные

    40 - 60

    не более 0,1

    х.п. 22 - 24

    т.п. 23 - 25

    Фактические

    45

    0,1

    х.п. 22 - 24

    т.п. 23 - 25

    Таким образом, параметры микроклимата в рассматриваемом помещение соответствуют оптимальным нормам /19/.

    Необходимая кратность воздухообмена обеспечивается естественной вентиляцией и кондиционированием.

    Температура в помещении регулируется при помощи кондиционеров и системы отопления. В холодное время года функционирует водяное отопление и работает кондиционер, а в теплое - кондиционер и вентиляция.

    Стены и потолок помещения отделаны специальным шумопоглощающим материалом.

    4.2.3 Требования к освещению помещения

    В помещении имеется естественное и искусственное освещение. Нормы освещенности представлены в таблице 11.

    Таблица 11 - Нормы освещенности помещения

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    Высокая точность

    от 0,3 до 0,5 мм

    Б1

    > 70 %

    300 лк

    100 лк

    40

    15%

    3,0 %

    1,0 %

    Графы содержат следующие сведения:

    1 - Характеристика зрительных работ

    2 - Наименьший размер объекта различения

    3 - Разряд зрительной работы

    4 - Относительная продолжительность зрительной работы

    5 - Освещенность на рабочей поверхности от системы общего искусственного освещения

    6 - Цилиндрическая освещенность

    7 - Показатель дискомфорта

    8 - Коэффициент пульсации освещенности

    9 - КЕО при верхнем освещении

    10 - КЕО при боковом освещении

    Для искусственного освещения используют 3 светильника на люминесцентных лампах (типа ЛД 40). Необходимое количество светильников определяется по формуле

    , (73)

    где e h - освещенность, лк;

    S - площадь помещения, м 2;

    K - коэффициент запаса, k=l,3;

    Z - коэффициент минимальной освещенности, z=1,2;

    Ф л - световой поток, Ф л = 2100 лм;

    N - количество ламп в одном светильнике, n = 2;

    - коэффициент использования светового потока.

    Согласно формуле (73) шт.

    Расчетное количество светильников соответствует их установленному количеству. Следовательно, в установке дополнительного освещения нет необходимости. Уровень освещенности в помещении удовлетворяет требованию СНиП 23-05-95.

    4.2.4 Требования безопасности при эксплуатации электрокоммуникаций

    Помещение вычислительной лаборатории по опасности поражения электрическим током характеризуется как "помещение с повышенной опасностью", поскольку не исключается возможность одновременного прикосновения человека к заземленным металлическим конструкциям и корпусам оборудования. Для обеспечения безопасности осуществляется изоляция токонесущих частей оборудования, проводится профилактические осмотры кабелей и всей электропроводки. Необходимо обеспечить надежное заземление.

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

    4.3 Разработка мер защиты от опасных и вредных факторов

    Во избежании несчастных случаев при использовании оборудования необходимо: осмотр и профилактика оборудования, инструктажи по технике безопасности, соблюдения графика режима работы /20/. Меры защиты от указанных выше опасных и вредных производственных факторов приведены в таблице 12.

    Таблица 12 - Меры зашиты от опасных и вредных производственных факторов

    Опасные и вредные факторы

    Меры защиты

    Место расположения

    организационные

    технические

    Опасный уровень напряжения в электрической цепи, замыкание которое может произойти через тело человека

    Инструктажи по технике безопасности

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

    Системные блоки персональных компьютеров, мониторы

    Продолжение таблицы 12

    1

    2

    3

    4

    Ионизирующее излучение

    режим труда и отдыха

    Использование защитных экранов, расположение компьютеров по периметру помещения

    Персональный компьютер

    Электромагнитные излучения

    Регламентация рабочего времени

    Экранирование электромагнитных полей

    Персональный компьютер

    Повышенный уровень шума

    Рациональное размещение оборудования

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

    Стены, потолки, перекрытия

    4.4 Безопасность жизнедеятельности в чрезвычайных ситуациях

    Необходимый уровень безопасности пользователей ПЭВМ и обеспечение наиболее быстрого устранения ситуаций, угрожающих здоровью или жизни людей, поддерживается путем организации комплекса мер по предупреждению и наиболее быстрому устранению подобных ситуаций, а также, с помощью наличия средств защиты пожаротушения /21/.

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

    Подкатегории "В" приведены в таблице 13.

    Таблица 13 - Определение подкатегории пожароопасных помещений

    Наименование категории

    Удельная пожарная нагрузка, МДж/м 2

    1

    2

    В1

    Более 2200

    В2

    1401 - 2200

    ВЗ

    181 - 1401

    В4

    1 - 181



    else begin

    dvar[k,j+1]:=StrToFloat(str2);

    k: = k + 1; str2: =;

    end;

    if i=Length(str) then dvar[k,j+1]:=StrToFloat(str2);

    end;

    end else try

    dvar[1,j+1]:=StrToFloat(str);

    dvar[2,j+1]:=StrToFloat(str);

    dvar[3,j+1]:=StrToFloat(str);

    except

    showmessage(Ошибка при вводе значений безрисковой процентной ставки!);

    FocusControl (Stringgrid4);

    end;

    end;

    end;end;

    //------------------------------Рассчет значения коэф-та покрытия Сt

    for i:=1 to n do begin

    Ct[1,i]:=1;

    Ct[2,i]:=1;

    end;

    for i:=1 to n do begin

    if Zt[2,i]<>0 then Ct[1,i]:=At[1,i]/Zt[2,i];

    if Zt[1,i]<>0 then Ct[2,i]:=At[2,i]/Zt[1,i];

    j:=3;

    if (Ct[1,i]*Ct[2,i])<=(kCt[1]*kCt[1]) then Cto[i]:=(Ct[1,i]*Ct[2,i])/(kCt[1]*kCt[1]);

    if ((Ct[1,i]*Ct[2,i])>(kCt[1]*kCt[1]))and (Ct[1,i]*Ct[2,i]<=(kCt[2]*kCt[2]))then j:=0;

    if ((Ct[1,i]*Ct[2,i])>(kCt[2]*kCt[2]))and (Ct[1,i]*Ct[2,i]<=(kCt[3]*kCt[3])) then j:=1;

    if ((Ct[1,i]*Ct[2,i])>(kCt[3]*kCt[3]))and (Ct[1,i]*Ct[2,i]<1) then j:=2;

    if (Ct[1,i]*Ct[2,i]>=1) then Cto[i]:=1;

    if (j = 0) or (j = 1) then

    Cto[i]:=kCt[1+j]+((((Ct[1,i]*Ct[2,i])-(kCt[1+j]*kCt[1+j]))*(kCt[2+j]-kCt[1+j]))/((kCt[2+j]*kCt[2+j])-(kCt[1+j]*kCt[1+j])));

    if j = 2 then

    Cto[i]:=kCt[1+j]+((((Ct[1,i]*Ct[2,i])-(kCt[1+j]*kCt[1+j]))*(1-kCt[1+j]))/(1-(kCt[1+j]*kCt[1+j])));

    end;

    for i:=1 to n do begin

    for j:=1 to 3 do begin

    NPVvar[j,i]:=0;

    end;

    end;

    //------------------------------Рассчет инервалов NPVt

    if Rtkey=false then begin

    for ii:=1 to n do begin

    for i:=1 to ii do begin

    smin:=1;smax:=1;sav:=1;

    for j:=1 to i do begin smax:=smax*dvar[1,i];

    smin:=smin*dvar[3,i];

    sav:=sav*dvar[2,i];

    end;

    NPVvar[3,ii]:=NPVvar[3,ii]+(Svar[3,i]/smax);

    NPVvar[1,ii]:=NPVvar[1,ii]+(Svar[1,i]/smin);

    NPVvar[2,ii]:=NPVvar[2,ii]+(Svar[2,i]/sav);

    end;

    NPVvar[1,ii]:=NPVvar[1,ii]-Ip[3];

    NPVvar[2,ii]:=NPVvar[2,ii]-Ip[2];

    NPVvar[3,ii]:=NPVvar[3,ii]-Ip[1];

    end;

    end else begin

    for ii:=1 to nRt do begin

    for i:=1 to ii do begin

    smax:=1;

    for j:=1 to i do begin smax:=smax*Rdvar[i];end;

    NPVvar[3,ii]:=NPVvar[3,ii]+(RSvar[i]/smax);

    end;

    NPVvar[1,ii]:=NPVvar[3,ii]-Ir;

    NPVvar[2,ii]:=NPVvar[3,ii]-Ir;

    NPVvar[3,ii]:=NPVvar[3,ii]-Ir;

    end;

    for ii:=nRt+1 to n do begin

    for i:=1 to nRt do begin

    smax:=1;

    for j:=1 to i do begin smax:=smax*Rdvar[i];end;

    NPVvar[3,ii]:=NPVvar[3,ii]+(RSvar[i]/smax);

    end;

    NPVvar[2,ii]:=NPVvar[3,ii];

    NPVvar[1,ii]:=NPVvar[3,ii];

    for i:=nRt+1 to ii do begin

    smin:=1;smax:=1;sav:=1;

    for j:=1 to i do begin smax:=smax*dvar[1,i];

    smin:=smin*dvar[3,i];

    sav:=sav*dvar[2,i];

    end;

    NPVvar[3,ii]:=NPVvar[3,ii]+(Svar[3,i]/smax);

    NPVvar[1,ii]:=NPVvar[1,ii]+(Svar[1,i]/smin);

    NPVvar[2,ii]:=NPVvar[2,ii]+(Svar[2,i]/sav);

    end;

    NPVvar[1,ii]:=NPVvar[1,ii]-Ir;

    NPVvar[2,ii]:=NPVvar[2,ii]-Ir;

    NPVvar[3,ii]:=NPVvar[3,ii]-Ir;

    end;

    end;

    //------------------------------Рассчет значения коэффициента риска Vt

    for i:=1 to n do begin

    if (NPVvar[3,i]=NPVvar[1,i]) or (NPVvar[2,i]=NPVvar[1,i]) or (NPVvar[3,i]=NPVvar[2,i]) then begin

    if (NPVvar[1,i]>G) then Vt[i]:=0;

    if (NPVvar[1,i]<=G) and (NPVvar[3,i]>=G) then Vt[i]:=(G-NPVvar[1,i])/(NPVvar[3,i]-NPVvar[1,i]);

    if (NPVvar[3,i]

    end else begin

    smin:=(G-NPVvar[1,i])/(NPVvar[3,i]-NPVvar[1,i]);

    if G

    if (G>=NPVvar[1,i]) and (G

    smax:=(G-NPVvar[1,i])/(NPVvar[2,i]-NPVvar[1,i]);

    Vt[i]:=smin*(1+((1-smax)/smax)*Ln(1-smax));

    end;

    if (G>=NPVvar[2,i]) and (G

    if G=NPVvar[2,i] then smax:=1 else smax:=(NPVvar[3,i]-G)/(NPVvar[3,i]-NPVvar[2,i]);

    Vt[i]:=1-((1-smin)*(1+((1-smax)/smax)*Ln(1-smax)));

    end;

    if G>=NPVvar[3,i] then Vt[i]:=1;

    end;

    end;

    //-----------------------------Рассчет значения коэ-та ликвидности Rt

    For i:=1 to n do begin

    Rt[1,i]:=1;Rto[i]:=1;

    Rt[2,i]:=1;

    end;

    //-----------------------------рассчет прогнозного занчения NPV и Rt

    if Rtkey=true then begin

    for ii:=1 to n do begin

    NPVpmin:=0;NPVpmax:=0;NPVpav:=0;

    for i:=1 to ii do begin

    smin:=1;smax:=1;sav:=1;

    for j:=1 to i do begin smin:=smin*dvar[3,i];smax:=smax*dvar[1,i];sav:=sav*dvar[2,i];end;

    NPVpmax:=NPVpmax+(Svar[3,i]/smax);

    NPVpmin:=NPVpmin+(Svar[1,i]/smin);

    NPVpav:=NPVpav+(Svar[2,i]/sav);

    end;

    NPVpmin:=NPVpmin-Ip[3];

    if NPVpmin<>0 then Rt[1,ii]:=NPVvar[1,ii]/NPVpmin;

    NPVpmax:=NPVpmax-Ip[1];

    if NPVpmax<>0 then Rt[3,ii]:=NPVvar[3,ii]/NPVpmax;

    NPVpav:=NPVpav-Ip[2];

    if NPVpav<>0 then Rt[2,ii]:=NPVvar[2,ii]/NPVpav;

    if (NPVpmin<=0) and (NPVvar[1,ii]>=0) then Rt[1,ii]:=1;

    if (NPVpmax<=0) and (NPVvar[3,ii]>=0) then Rt[3,ii]:=1;

    if (NPVpav<=0) and (NPVvar[2,ii]>=0) then Rt[2,ii]:=1;

    if (NPVpmin>=0) and (NPVvar[1,ii]<0) then Rt[1,ii]:=0;

    if (NPVpmax>=0) and (NPVvar[3,ii]<0) then Rt[3,ii]:=0;

    if (NPVpav>=0) and (NPVvar[2,ii]<0) then Rt[2,ii]:=0;

    end;

    for i:=1 to n do begin

    j:=3;

    if (Rt[1,i]*Rt[2,i]*Rt[3,i])<=(kRt[1]*kRt[1]*kRt[1]) then Rto[i]:=(Rt[1,i]*Rt[2,i]*Rt[3,i])/(kRt[1]*kRt[1]);

    if ((Rt[1,i]*Rt[2,i]*Rt[3,i])>(kRt[1]*kRt[1]*kRt[1]))and (Rt[1,i]*Rt[2,i]*Rt[3,i]<=(kRt[2]*kRt[2]*kRt[2]))then j:=0;

    if ((Rt[1,i]*Rt[2,i]*Rt[3,i])>(kRt[2]*kRt[2]*kRt[2]))and (Rt[1,i]*Rt[2,i]*Rt[3,i]<=(kRt[3]*kRt[3]*kRt[3])) then j:=1;

    if ((Rt[1,i]*Rt[2,i]*Rt[3,i])>(kRt[3]*kRt[3]*kRt[3]))and (Rt[1,i]*Rt[2,i]*Rt[3,i]<1) then j:=2;

    if (Rt[1,i]*Rt[2,i]*Rt[3,i]>=1) then Rto[i]:=1;

    if (j = 0) or (j = 1) then

    Rto[i]:=kRt[1+j]+((((Rt[1,i]*Rt[2,i]*Rt[3,i])-(kRt[1+j]*kRt[1+j]*kRt[1+j]))*(kRt[2+j]-kRt[1+j]))/((kRt[2+j]*kRt[2+j]*kRt[2+j])-(kRt[1+j]*kRt[1+j]*kRt[1+j])));

    if j = 2 then

    Rto[i]:=kRt[1+j]+((((Rt[1,i]*Rt[2,i]*Rt[3,i])-(kRt[1+j]*kRt[1+j]*kRt[1+j]))*(1-kRt[1+j]))/(1-(kRt[1+j]*kRt[1+j]*kRt[1+j])));

    end;

    end;

    for i:=1 to n do begin

    //----------------------------------Значения ф. принадлежности для Сt

    if Cto[i]<=((kCt[2]+kCt[3])/2) then mCt[1,i]:=0;

    if (Cto[i]>((kCt[2]+kCt[3])/2)) and (Cto[i]

    if Cto[i]>=kCt[3] then mCt[1,i]:=1;

    if (Cto[i]<=((kCt[1]+kCt[2])/2)) or (Cto[i]>=((kCt[3]+1)/2)) then mCt[2,i]:=0;

    if (Cto[i]>((kCt[1]+kCt[2])/2)) and (Cto[i]<((kCt[2]+kCt[3])/2)) then mCt[2,i]:=(2*Cto[i]-kCt[1]-kCt[2])/(kCt[3]-kCt[1]);

    if (Cto[i]>=((kCt[2]+kCt[3])/2)) and (Cto[i]<=((kCt[3]+1)/2)) then mCt[2,i]:=1-((2*Cto[i]-kCt[2]-kCt[3])/(1-kCt[2]));

    if (Cto[i]<=(kCt[1]/2)) or (Cto[i]>((kCt[2]+kCt[3])/2)) then mCt[3,i]:=0;

    if (Cto[i]>(kCt[1]/2)) and (Cto[i]<((kCt[1]+kCt[2])/2)) then mCt[3,i]:=(2*Cto[i]-kCt[1])/(kCt[2]);

    if (Cto[i]>=((kCt[1]+kCt[2])/2)) and (Cto[i]<=((kCt[2]+kCt[3])/2)) then mCt[3,i]:=1-(2*Cto[i]-kCt[1]-kCt[2])/(kCt[3]-kCt[1]);

    if Cto[i]>=((kCt[1]+kCt[2])/2) then mCt[4,i]:=0;

    if (Cto[i]<((kCt[1]+kCt[2])/2)) and (Cto[i]>kCt[1]) then mCt[4,i]:=1-(2*(Cto[i]-kCt[1])/(kCt[2]-kCt[1]));

    if Cto[i]<=kCt[1] then mCt[4,i]:=1;

    //----------------------------------Значения ф. принадлежности для Rt

    if Rto[i]<=((kRt[2]+kRt[3])/2) then mRt[1,i]:=0;

    if (Rto[i]>((kRt[2]+kRt[3])/2)) and (Rto[i]

    if Rto[i]>=kRt[3] then mRt[1,i]:=1;

    if (Rto[i]<=((kRt[1]+kRt[2])/2)) or (Rto[i]>=((kRt[3]+1)/2)) then mRt[2,i]:=0;

    if (Rto[i]>((kRt[1]+kRt[2])/2)) and (Rto[i]<((kRt[2]+kRt[3])/2)) then mRt[2,i]:=(2*Rto[i]-kRt[1]-kRt[2])/(kRt[3]-kRt[1]);

    if (Rto[i]>=((kRt[2]+kRt[3])/2)) and (Rto[i]<=((kRt[3]+1)/2)) then mRt[2,i]:=1-((2*Rto[i]-kRt[2]-kRt[3])/(1-kRt[2]));

    if (Rto[i]<=(kRt[1]/2)) or (Rto[i]>=((kRt[2]+kRt[3])/2)) then mRt[3,i]:=0;

    if (Rto[i]>=(kRt[1]/2)) and (Rto[i]<((kRt[1]+kRt[2])/2)) then mRt[3,i]:=(2*Rto[i]-kRt[1])/(kRt[2]);

    if (Rto[i]>=((kRt[1]+kRt[2])/2)) and (Rto[i]<((kRt[2]+kRt[3])/2)) then mRt[3,i]:=1-((2*Rto[i]-kRt[1]-kRt[2])/(kRt[3]-kRt[1]));

    if Rto[i]>=((kRt[1]+kRt[2])/2) then mRt[4,i]:=0;

    if (Rto[i]<((kRt[1]+kRt[2])/2)) and (Rto[i]>kRt[1]) then mRt[4,i]:=1-(2*(Rto[i]-kRt[1])/(kRt[2]-kRt[1]));

    if Rto[i]<=kRt[1] then mRt[4,i]:=1;

    //----------------------------------Значения ф. принадлежности для Vt

    if Vt[i]<=((kVt[2]+kVt[3])/2) then mVt[4,i]:=0;

    if (Vt[i]>((kVt[2]+kVt[3])/2)) and (Vt[i]

    if Vt[i]>=kVt[3] then mVt[4,i]:=1;

    if (Vt[i]<=((kVt[1]+kVt[2])/2)) or (Vt[i]>=((kVt[3]+1)/2)) then mVt[3,i]:=0;

    if (Vt[i]>((kVt[1]+kVt[2])/2)) and (Vt[i]<((kVt[2]+kVt[3])/2)) then mVt[3,i]:=(2*Vt[i]-kVt[1]-kVt[2])/(kVt[3]-kVt[1]);

    if (Vt[i]<((kVt[3]+1)/2)) and (Vt[i]>((kVt[2]+kVt[3])/2)) then mVt[3,i]:=1-((2*Vt[i]-kVt[2]-kVt[3])/(1-kVt[2]));

    if (Vt[i]<=(kVt[1]/2)) or (Vt[i]>=((kVt[2]+kVt[3])/2)) then mVt[2,i]:=0;

    if (Vt[i]>(kVt[1]/2)) and (Vt[i]<((kVt[1]+kVt[2])/2)) then mVt[2,i]:=(2*Vt[i]-kVt[1])/(kVt[2]);

    if (Vt[i]>=((kVt[1]+kVt[2])/2)) and (Vt[i]<=((kVt[2]+kVt[3])/2)) then mVt[2,i]:=1-((2*Vt[i]-kVt[1]-kVt[2])/(kVt[3]-kVt[1]));

    if Vt[i]>=((kVt[1]+kVt[2])/2) then mVt[1,i]:=0;

    if (Vt[i]<((kVt[1]+kVt[2])/2)) and (Vt[i]>kVt[1]) then mVt[1,i]:=1-(2*(Vt[i]-kVt[1])/(kVt[2]-kVt[1]));

    if Vt[i]<=kVt[1] then mVt[1,i]:=1;

    end;

    //-----------------------------Вывод значений

    For i:=1 to n do begin

    str:=(+FloatToStrF(Ct[1,i],ffFixed,9,2)+; +FloatToStrF(Ct[2,i],ffFixed,9,2)+);

    Form3.StringGrid1.Cells[1,i]:=str;

    Form3.StringGrid1.Cells[4,i]:=FloatToStrF(Vt[i],ffFixed,9,2);

    str:=(+FloatToStrF(NPVvar[1,i],ffFixed,9,2)+; +FloatToStrF(NPVvar[2,i],ffFixed,9,2)+; +FloatToStrF(NPVvar[3,i],ffFixed,9,2)+);

    Form3.StringGrid1.Cells[2,i]:=str;

    str:=(+FloatToStrF(Rt[1,i],ffFixed,9,2)+; +FloatToStrF(Rt[2,i],ffFixed,9,2)+; +FloatToStrF(Rt[3,i],ffFixed,9,2)+);

    Form3.StringGrid1.Cells[3,i]:=str;

    end;

    for j:=1 to n do begin

    // Form3.StringGrid2.Cells[1,j]:=FloatToStr(Cto[j]);

    // Form3.StringGrid2.Cells[2,j]:=FloatToStr(Rto[j]);

    k: = 1; ii:=1;iv:=1;

    for i:=2 to 4 do begin

    if mCt[i-1,j]

    if mRt[i-1,j]

    if mVt[i-1,j]

    end;

    if k=1 then Form3.StringGrid2.Cells[1,j]:=FloatToStrF(mCt[k,j],ffFixed,9,2)+-минимальный;

    if k=2 then Form3.StringGrid2.Cells[1,j]:=FloatToStrF(mCt[k,j],ffFixed,9,2)+-повышенный;

    if k=3 then Form3.StringGrid2.Cells[1,j]:=FloatToStrF(mCt[k,j],ffFixed,9,2)+-критический;

    if k=4 then Form3.StringGrid2.Cells[1,j]:=FloatToStrF(mCt[k,j],ffFixed,9,2)+-недопустимый;

    if ii=1 then Form3.StringGrid2.Cells[2,j]:=FloatToStrF(mRt[ii,j],ffFixed,9,2)+-минимальный;

    if ii=2 then Form3.StringGrid2.Cells[2,j]:=FloatToStrF(mRt[ii,j],ffFixed,9,2)+-повышенный;

    if ii=3 then Form3.StringGrid2.Cells[2,j]:=FloatToStrF(mRt[ii,j],ffFixed,9,2)+-критический;

    if ii=4 then Form3.StringGrid2.Cells[2,j]:=FloatToStrF(mRt[ii,j],ffFixed,9,2)+-недопустимый;

    if iv=1 then Form3.StringGrid2.Cells[3,j]:=FloatToStrF(mVt[iv,j],ffFixed,9,2)+-минимальный;

    if iv=2 then Form3.StringGrid2.Cells[3,j]:=FloatToStrF(mVt[iv,j],ffFixed,9,2)+-повышенный;

    if iv=3 then Form3.StringGrid2.Cells[3,j]:=FloatToStrF(mVt[iv,j],ffFixed,9,2)+-критический;

    if iv=4 then Form3.StringGrid2.Cells[3,j]:=FloatToStrF(mVt[iv,j],ffFixed,9,2)+-недопустимый;

    //----------------------------------Рассчет общего риска проекта

    re:=TR[iv,k,ii];

    min:=mVt[iv,j];

    if mRt[ii,j]

    if mCt[k,j]

    if re=1 then begin

    A1:=0;B1:=0;K1:=0;C1:=0;

    C2:=(((1-min)*(kre[2]-kre[1]))+2*kre[1])/2;

    K2:=(kre[1]+kre[2])/2;

    A2:=(-2/(kre[2]-kre[1]));

    B2:=1+((2*kre[1])/(kre[2]-kre[1]));

    end;

    if re=2 then begin

    A1:=2/kre[2];

    B1:=-kre[1]/kre[2];

    K1:=kre[1]/2;

    C1:=((min*kre[2])+kre[1])/2;

    C2:=(((1-min)*kre[3])+kre[2]+(min*kre[1]))/2;

    K2:=(kre[2]+kre[3])/2;

    A2:=(-2/(kre[3]-kre[1]));

    B2:=1+((kre[1]+kre[2])/(kre[3]-kre[1]));

    end;

    if re=3 then begin

    A1:=2/(kre[3]-kre[1]);

    B1:=-(kre[1]+kre[2])/(kre[3]-kre[1]);

    K1:=(kre[1]+kre[2])/2;

    C1:=((min*(kre[3]-kre[1]))+kre[1]+kre[2])/2;

    C2:=(((1-min)*(1-kre[2]))+kre[3]+kre[2])/2;

    K2:=(kre[3]+1)/2;

    A2:=(-2/(1-kre[2]));

    B2:=1-((kre[2]+kre[3])/(1-kre[2]));

    end;

    if re=4 then begin

    A1:=(2/(kre[3]-kre[2]));

    B1:=-(kre[2]+kre[3])/(kre[3]-kre[2]);

    K1:=(kre[2]+kre[3])/2;

    C1:=((min*(kre[3]-kre[2]))+kre[2]+kre[3])/2;

    C2:=1;K2:=0;A2:=0;B2:=0;

    end;

    vrch:=(A1*((C1*C1*C1)-(K1*K1*K1))/3);

    vrch:=vrch+((B1*((C1*C1)-(K1*K1)))/2);

    vrch:=vrch+(min*((C2*C2)-(C1*C1))/2);

    vrch:=vrch+(A2*(((K2*K2*K2)-(C2*C2*C2)))/3)+(B2*((K2*K2)-(C2*C2))/2);

    vrz:=(A1*((C1*C1)-(K1*K1))/2);

    vrz:=vrz+(B1*(C1-K1));

    vrz:=vrz+(min*(C2-C1));

    vrz:=vrz+(A2*((K2*K2)-(C2*C2))/2)+(B2*(K2-C2));

    vr:=vrch/vrz;

    //----------------------

    if TR[iv,k,ii]=1 then begin

    if (vr<=(kre[1]/2)) or (vr>=((kre[2]+kre[3])/2)) then mvr2:=0;

    if (vr>(kre[1]/2)) and (vr<((kre[1]+kre[2])/2)) then mvr2:=(2*vr-kre[1])/(kre[2]);

    if (vr>=((kre[1]+kre[2])/2)) and (vr<=((kre[2]+kre[3])/2)) then mvr2:=1-((2*vr-kre[1]-kre[2])/(kre[3]-kre[1]));

    if vr>=((kre[1]+kre[2])/2) then mvr1:=0;

    if (vr<((kre[1]+kre[2])/2)) and (vr>C2) then mvr1:=1-(2*(vr-kre[1])/(kre[2]-kre[1]));

    if vr<=C2 then mvr1:=min;

    if mvr2>mvr1 then re:=2;

    end;

    if TR[iv,k,ii]=2 then begin

    if (vr<=((kre[1]+kre[2])/2)) or (vr>=((kre[3]+1)/2)) then mvr3:=0;

    if (vr>((kre[1]+kre[2])/2)) and (vr<((kre[2]+kre[3])/2)) then mvr3:=(2*vr-kre[1]-kre[2])/(kre[3]-kre[1]);

    if (vr<((kre[3]+1)/2)) and (vr>((kre[2]+kre[3])/2)) then mvr3:=1-((2*vr-kre[2]-kre[3])/(1-kre[2]));

    if (vr<=(kre[1]/2)) or (vr>=((kre[2]+kre[3])/2)) then mvr2:=0;

    if (vr>(kre[1]/2)) and (vr

    if (vr>=C1) and (vr<=C2) then mvr2:=min;

    if (vr>=C2) and (vr<((kre[2]+kre[3])/2)) then mvr2:=1-((2*vr-kre[1]-kre[2])/(kre[3]-kre[1]));

    if vr>=((kre[1]+kre[2])/2) then mvr1:=0;

    if (vr<((kre[1]+kre[2])/2)) and (vr>kre[1]) then mvr1:=1-(2*(vr-kre[1])/(kre[2]-kre[1]));

    if vr<=kre[1] then mvr1:=1;

    if mvr1>mvr2 then re:=1;

    if mvr3>mvr2 then re:=3;

    end;

    if TR[iv,k,ii]=3 then begin

    if vr<=((kre[2]+kre[3])/2) then mvr4:=0;

    if (vr>((kre[2]+kre[3])/2)) and (vr

    if vr>=kre[3] then mvr4:=1;

    if (vr<=((kre[1]+kre[2])/2)) or (vr>=((kre[3]+1)/2)) then mvr3:=0;

    if (vr>((kre[1]+kre[2])/2)) and (vr

    if (vr>=C1) and (vr<=C2) then mvr3:=min;

    if (vr<((kre[3]+1)/2)) and (Vt[i]>C2) then mvr3:=1-((2*vr-kre[2]-kre[3])/(1-kre[2]));

    if (vr<=(kre[1]/2)) or (vr>=((kre[2]+kre[3])/2)) then mvr2:=0;

    if (vr>(kre[1]/2)) and (vr<((kre[1]+kre[2])/2)) then mvr2:=(2*vr-kre[1])/(kre[2]);

    if (vr>=((kre[1]+kre[2])/2)) and (vr<=((kre[2]+kre[3])/2)) then mvr2:=1-((2*vr-kre[1]-kre[2])/(kre[3]-kre[1]));

    if mvr4>mvr3 then re:=4;

    if mvr2>mvr3 then re:=2;

    end;

    if TR[iv,k,ii]=4 then begin

    if vr<=((kre[2]+kre[3])/2) then mvr4:=0;

    if (vr>((kre[2]+kre[3])/2)) and (Vt[i]

    if vr>=C1 then mvr4:=min;

    if (vr<=((kre[1]+kre[2])/2)) or (vr>=((kre[3]+1)/2)) then mvr3:=0;

    if (vr>((kre[1]+kre[2])/2)) and (vr<((kre[2]+kre[3])/2)) then mvr3:=(2*vr-kre[1]-kre[2])/(kre[3]-kre[1]);

    if (vr<((kre[3]+1)/2)) and (vr>((kre[2]+kre[3])/2)) then mvr3:=1-((2*vr-kre[2]-kre[3])/(1-kre[2]));

    if mvr3>mvr4 then re:=3;

    end;

    //---------------------

    if re=1 then begin

    Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+-минимальный;

    Edit4.Text:=минимальный;

    end;

    if re=2 then begin

    Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+-повышенный;

    Edit4.Text:=повышенный;

    end;

    if re=3 then begin

    Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+-критический;

    Edit4.Text:=критический;

    end;

    if re=4 then begin

    Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+-недопустимый;

    Edit4.Text:=недопустимый;

    end;

    end;

    Edit3.Text:=FloatToStrF(vr,ffFixed,9,2);

    end;

    procedure TForm1.N7Click(Sender: TObject);

    begin

    Form2.Show;

    end;

    procedure TForm1.N3Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (saveDialog1.Execute) then begin

    AssignFile(Myfile,Savedialog1.FileName);

    Try Rewrite(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    Date:=IntToStr(SpinEdit1.Value);WriteLn(MyFile,Date);

    Date:=Edit1.Text;WriteLn(MyFile,Date);

    Date:=Edit2.Text;WriteLn(MyFile,Date);

    For i:=0 to n-1 do begin

    Date:=StringGrid1.Cells[i,1];

    WriteLn(Myfile,Date);

    end;

    For i:=0 to n-1 do begin

    Date:=StringGrid2.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    For i:=0 to n-1 do begin

    Date:=StringGrid3.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    Date:=IntToStr(StringGrid4.ColCount);WriteLn(Myfile,Date);

    For i:=0 to StringGrid4.ColCount-1 do begin

    Date:=StringGrid4.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    With Form2 do begin

    Date:=IntToStr(SpinEdit1.Value);WriteLn(Myfile,Date);

    Date:=Edit1.Text;WriteLn(Myfile,Date);

    For i:=0 to nRt-1 do begin

    Date:=StringGrid1.Cells[i,1];

    WriteLn(Myfile,Date);

    end;

    For i:=0 to nRt-1 do begin

    Date:=StringGrid2.Cells[i,1];

    WriteLn(Myfile,Date);

    end;

    end;

    Closefile(myFile);

    end

    else Begin Showmessage(Ошибка!); Exit;end;

    end;

    procedure TForm1.N4Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (OpenDialog1.Execute) then begin

    AssignFile(Myfile,Opendialog1.FileName);

    Try Reset(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    ReadLn(MyFile,Date);SpinEdit1.Value:=StrToInt(Date);n:=StrToInt(Date);

    ReadLn(MyFile,Date);Edit1.Text:=Date;

    ReadLn(MyFile,Date);Edit2.Text:=Date;

    For i:=0 to n-1 do begin

    ReadLn(MyFile,Date);

    StringGrid1.Cells[i,1]:=Date;

    end;

    For i:=0 to n-1 do begin

    ReadLn(MyFile,Date);

    StringGrid2.Cells[i,1]:=Date;

    End;

    For i:=0 to n-1 do begin

    ReadLn(MyFile,Date);

    StringGrid3.Cells[i,1]:=Date;

    End;

    ReadLn(MyFile,Date);StringGrid4.ColCount:=StrToInt(Date);

    For i:=0 to StringGrid4.ColCount-1 do begin

    ReadLn(MyFile,Date);

    StringGrid4.Cells[i,1]:=Date;

    End;

    With Form2 do begin

    ReadLn(MyFile,Date);SpinEdit1.Value:=StrToInt(Date);

    nRt:=StrToInt(Date);StringGrid1.ColCount:=nRt;StringGrid2.ColCount:=nRt;

    ReadLn(MyFile,Date);Edit1.Text:=Date;

    For i:=0 to nRt-1 do begin

    ReadLn(MyFile,Date);

    StringGrid1.Cells[i,1]:=Date;

    end;

    For i:=0 to nRt-1 do begin

    ReadLn(MyFile,Date);

    StringGrid2.Cells[i,1]:=Date;

    end;

    end;

    Closefile(myFile);

    if StringGrid4.ColCount=1 then CheckBox1.Checked:=true;

    end

    else Begin Showmessage(Файл не найден!); Exit;end;

    end;

    procedure TForm1.N6Click(Sender: TObject);

    begin

    Form4.Show;

    end;

    procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44),chr(8):;

    else key: = chr (0); end;

    end;

    procedure TForm1.N5Click(Sender: TObject);

    begin

    Form5.show;

    end;

    procedure TForm1.N9Click(Sender: TObject);

    begin

    Form6.show;

    end;

    procedure TForm1.Button1Click (Sender: TObject);

    begin

    Form3.Show;

    end;

    end.

    unit Rtmodul;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, Spin;

    type

    TForm2 = class(TForm)

    GroupBox1: TGroupBox;

    Label1: TLabel;

    SpinEdit1: TSpinEdit;

    Label2: TLabel;

    Edit1: TEdit;

    GroupBox2: TGroupBox;

    StringGrid1: TStringGrid;

    GroupBox3: TGroupBox;

    StringGrid2: TStringGrid;

    Panel1: TPanel;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure SpinEdit1Change (Sender: TObject);

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

    procedure FormCreate (Sender: TObject);

    procedure StringGrid1KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid2KeyPress (Sender: TObject; var Key: Char);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    Form2: TForm2;

    Rtkey : boolean;

    i,j,ii : integer;

    NPVpmin,NPVpmax,NPVpav,smin,smax : real;{прогнозное значение NPV для интервала}

    implementation

    uses datamodul;

    {$ R * .dfm}

    procedure TForm2.SpinEdit1Change(Sender: TObject);

    begin

    nRt:=SpinEdit1.Value;

    StringGrid1.ColCount:=nRt;

    StringGrid2.ColCount:=nRt;

    for i:=1 to nRt do begin

    StringGrid1.Cells[i-1,0]:=IntToStr(i);

    StringGrid2.Cells[i-1,0]:=IntToStr(i);

    end;

    end;

    procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54),

    chr(55),chr(56),chr(57),chr(44),chr(8):;

    else key: = chr (0);

    end;

    end;

    procedure TForm2.FormCreate(Sender: TObject);

    begin

    nRt:=n;

    StringGrid1.ColCount:=nRt;

    StringGrid2.ColCount:=nRt;

    for j:=0 to nRt-1 do begin

    StringGrid1.Cells [j, 0]: = IntToStr (j + 1);

    StringGrid2.Cells [j, 0]: = IntToStr (j + 1);

    end;

    For i:=1 to n do begin

    RSvar[i]:=0;

    Rdvar[i]:=0;

    end;

    end;

    procedure TForm2.StringGrid1KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54),

    chr(55),chr(56),chr(57),chr(44),chr(8):;

    else key: = chr (0);

    end;

    end;

    procedure TForm2.StringGrid2KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54),

    chr(55),chr(56),chr(57),chr(44),chr(8):;

    else key: = chr (0);

    end;

    end;

    procedure TForm2.BitBtn1Click(Sender: TObject);

    begin

    //----------------------------- Ввод значений в массив для рассчета коэф-та ликвидности Rt

    try Ir:=StrToFloat(Edit1.Text); Except Ir:=0; Edit1.Text:=IntToStr(0); end;

    for i:=1 to nRt do begin

    try

    RSvar[i]:=StrToFloat(StringGrid2.Cells[i-1,1]);

    Except

    StringGrid2.Cells[i-1,1]:=IntToStr(0);

    end;

    try

    Rdvar[i]:=StrToFloat(StringGrid1.Cells[i-1,1]);

    Except

    StringGrid1.Cells[i-1,1]:=IntToStr(0);

    end;

    end;

    Rtkey:=true;

    Form2.Hide;

    Form1.Show;

    end;

    procedure TForm2.BitBtn2Click(Sender: TObject);

    begin

    nRt:=n;

    Rtkey: = false;

    Form2.Close;

    end;

    end.

    unit Formirmodul;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, Grids, StdCtrls, Menus;

    type

    TForm4 = class(TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    GroupBox1: TGroupBox;

    Label1: TLabel;

    StringGrid1: TStringGrid;

    GroupBox2: TGroupBox;

    StringGrid2: TStringGrid;

    SaveDialog1: TSaveDialog;

    OpenDialog1: TOpenDialog;

    procedure FormCreate (Sender: TObject);

    procedure N5Click (Sender: TObject);

    procedure N6Click (Sender: TObject);

    procedure N3Click (Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N7Click (Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    Form4: TForm4;

    i,j,t : integer;

    PlusSi,MinusSi : array[1..3,1..20] of real;

    implementation

    uses datamodul;

    {$ R * .dfm}

    procedure TForm4.FormCreate(Sender: TObject);

    begin

    StringGrid1.ColCount:=n+1;

    StringGrid2.ColCount:=n+1;

    StringGrid1.Cells[0,1]:=Доходы от реализации продукции;

    StringGrid1.Cells[0,2]:=Возмещение НДС по инвестиции;

    StringGrid1.Cells[0,3]:=Амортизация;

    StringGrid2.Cells[0,1]:=Инвестиции (включая НДС);

    StringGrid2.Cells[0,2]:=Прирост оборотных средств;

    StringGrid2.Cells[0,3]:=Эксплутационные затраты;

    StringGrid2.Cells[0,4]:=Налоги;

    For i:=1 to n do begin

    StringGrid1.Cells[i,0]:=IntToStr(i);

    StringGrid2.Cells[i,0]:=IntToStr(i);

    end;

    end;

    procedure TForm4.N5Click(Sender: TObject);

    begin

    if StringGrid1.Focused then StringGrid1.RowCount:=StringGrid1.RowCount+1;

    if StringGrid2.Focused then StringGrid2.RowCount:=StringGrid2.RowCount+1;

    end;

    procedure TForm4.N6Click(Sender: TObject);

    begin

    if StringGrid1.Focused then StringGrid1.RowCount:=StringGrid1.RowCount-1;

    if StringGrid2.Focused then StringGrid2.RowCount:=StringGrid2.RowCount-1;

    end;

    procedure TForm4.N3Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (saveDialog1.Execute) then begin

    AssignFile(Myfile,Savedialog1.FileName);

    Try Rewrite(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    Date:=IntToStr(StringGrid1.RowCount);WriteLn(MyFile,Date);

    Date:=IntToStr(StringGrid2.RowCount);WriteLn(MyFile,Date);

    For j:=0 to n do begin

    For i:=0 to StringGrid1.RowCount-1 do begin

    Date:=StringGrid1.Cells[j,i];

    WriteLn(Myfile,Date);

    end;

    end;

    For j:=0 to n do begin

    For i:=0 to StringGrid2.RowCount-1 do begin

    Date:=StringGrid2.Cells[j,i];

    WriteLn(Myfile,Date);

    end;

    end;

    Closefile(myFile);

    end

    else Begin Showmessage(Ошибка!); Exit;end;

    end;

    procedure TForm4.N2Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (OpenDialog1.Execute) then begin

    AssignFile(Myfile,Opendialog1.FileName);

    Try Reset(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    ReadLn(MyFile,Date);StringGrid1.RowCount:=StrToInt(Date);

    ReadLn(MyFile,Date);StringGrid2.RowCount:=StrToInt(Date);

    For j:=0 to n do begin

    For i:=0 to StringGrid1.RowCount-1 do begin

    ReadLn(MyFile,Date);

    StringGrid1.Cells[j,i]:=Date;

    end;

    end;

    For j:=0 to n do begin

    For i:=0 to StringGrid2.RowCount-1 do begin

    ReadLn(MyFile,Date);

    StringGrid2.Cells[j,i]:=Date;

    end;

    end;

    Closefile(myFile);

    end

    else Begin Showmessage(Файл не найден!); Exit;end;

    end;

    procedure TForm4.N7Click(Sender: TObject);

    var

    str,str2 : string;

    k : integer;

    begin

    for t:=1 to n do begin

    for j:=1 to 3 do begin

    PlusSi[j,t]:=0;

    end;

    end;

    for t:=1 to n do begin

    for i:=1 to StringGrid1.RowCount-1 do begin

    str:=StringGrid1.Cells[t,i];

    if pos (;, str) <> 0 then begin str2: =; k: = 1;

    for j:=1 to Length(str)do begin

    if (str[j]<>;) then str2:=str2+str[j]

    else begin

    PlusSi[k,t]:=PlusSi[k,t]+StrToFloat(str2);

    k: = k + 1; str2: =;

    end;

    if j=Length(str) then PlusSi[k,t]:=PlusSi[k,t]+StrToFloat(str2);

    end;

    end else try

    PlusSi[1,t]:=PlusSi[1,t]+StrToFloat(str);

    PlusSi[2,t]:=PlusSi[2,t]+StrToFloat(str);

    PlusSi[3,t]:=PlusSi[3,t]+StrToFloat(str);

    except

    showmessage (Помилка при введенні значень інтервалів грошових потоків!);

    FocusControl (Stringgrid1);

    end;

    end;

    for i:=1 to StringGrid2.RowCount-1 do begin

    str:=StringGrid2.Cells[t,i];

    if pos (;, str) <> 0 then begin str2: =; k: = 1;

    for j:=1 to Length(str)do begin

    if (str[j]<>;) then str2:=str2+str[j]

    else begin

    if k=1 then PlusSi[3,t]:=PlusSi[3,t]-StrToFloat(str2);

    if k=2 then PlusSi[2,t]:=PlusSi[2,t]-StrToFloat(str2);

    k: = k + 1; str2: =;

    end;

    if j=Length(str) then PlusSi[1,t]:=PlusSi[1,t]-StrToFloat(str2);

    end;

    end else try

    PlusSi[1,t]:=PlusSi[1,t]-StrToFloat(str);

    PlusSi[2,t]:=PlusSi[2,t]-StrToFloat(str);

    PlusSi[3,t]:=PlusSi[3,t]-StrToFloat(str);

    except

    showmessage (Помилка при введенні значень інтервалів грошових потоків!);

    FocusControl (Stringgrid1);

    end;

    end;

    end;



    align="left"> for i:=1 to n do begin

    str:=;

    for j:=1 to 3 do begin

    str:=str+FloatToStr(PlusSi[j,i]);

    if j<>3 then str:=str+;;

    end;

    Form1.StringGrid1.Cells[i-1,1]:=str;

    end;

    end;

    end.

    unit Risk;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls, ComCtrls, Grids, ExtCtrls, Buttons, Spin, Menus;

    type

    TForm8 = class(TForm)

    PageControl1: TPageControl;

    TabSheet1: TTabSheet;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    StringGrid1: TStringGrid;

    StringGrid2: TStringGrid;

    TabSheet2: TTabSheet;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    StringGrid3: TStringGrid;

    StringGrid4: TStringGrid;

    TabSheet3: TTabSheet;

    Label8: TLabel;

    StringGrid6: TStringGrid;

    Label9: TLabel;

    StringGrid7: TStringGrid;

    StringGrid8: TStringGrid;

    Label10: TLabel;

    Panel3: TPanel;

    Label11: TLabel;

    Label12: TLabel;

    Label13: TLabel;

    Label14: TLabel;

    SpinEdit1: TSpinEdit;

    SpinEdit2: TSpinEdit;

    Edit1: TEdit;

    Edit2: TEdit;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    CheckBox1: TCheckBox;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    N5: TMenuItem;

    N9: TMenuItem;

    CheckBox2: TCheckBox;

    Label7: TLabel;

    procedure SpinEdit1Change (Sender: TObject);

    procedure SpinEdit2Change(Sender: TObject);

    procedure Edit1Exit(Sender: TObject);

    procedure Edit2Exit(Sender: TObject);

    procedure FormCreate (Sender: TObject);

    procedure CheckBox1Click (Sender: TObject);

    procedure N7Click (Sender: TObject);

    procedure N4Click (Sender: TObject);

    procedure N5Click (Sender: TObject);

    procedure N9Click (Sender: TObject);

    procedure CheckBox2Click(Sender: TObject);

    procedure StringGrid1KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid2KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid3KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid4KeyPress (Sender: TObject; var Key: Char);

    procedure StringGrid6KeyPress(Sender: TObject; var Key: Char);

    procedure StringGrid7KeyPress(Sender: TObject; var Key: Char);

    procedure StringGrid8KeyPress(Sender: TObject; var Key: Char);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    Form8: TForm8;

    Ct,At,Zt,Simd : array[1..20] of real;{критерий покрытия,соб.капитал,заемный кап.,мат.ож.ден.потоков(прогнозир.ден.потоки)}

    Pfsr : real; {ср.зн.цены}

    Sij,Vt : array[1..20] of real;{чист.ден.потоки,риск,}

    Rt : array[1..20] of real;{кр.ликвидности}

    n,i,j,f,l,ii : integer; {число ПУП,число ресурсов,}

    d,NPV,NPVi,NPVj,s,sum,sum2,sum3,ENPV : real; {коэф.дисконтирования,ЧПЭ,мат.ож.NPV}

    Ip : real; {первонач.кап.вложения}

    Pf : array[1..20,1..20] of real; {цена на ресурс в каждый ПУП, }

    Pkrit,Xf : array[1..20] of real; {Критический лимит цены,доля ресурса в портфеле ресурсов}

    implementation

    uses Results,Cov, PriceCov, Riskproject, normgenerator;

    {$ R * .dfm}

    procedure TForm8.SpinEdit1Change(Sender: TObject);

    begin

    n: = SpinEdit1.Value;

    StringGrid1.ColCount: = n; StringGrid2.ColCount: = n; StringGrid3.ColCount: = n; StringGrid4.ColCount: = n;

    Stringgrid7.RowCount:=n+1; Form3.StringGrid1.ColCount:=n+1;Form3.Stringgrid1.RowCount:=n+1;

    Form4.StringGrid1.ColCount: = n + 1; Form4.Stringgrid1.RowCount:=n+1;

    Form7.StringGrid1.ColCount:=n+3; Form7.StringGrid2.ColCount:=n+2;Form7.StringGrid3.ColCount:=n+1;

    For i:=1 to n do begin

    Stringgrid1.Cells[i-1,0]:=IntToStr(i); Stringgrid2.Cells[i-1,0]:=IntToStr(i);

    Stringgrid3.Cells[i-1,0]:=IntToStr(i); Stringgrid4.Cells[i-1,0]:=IntToStr(i);

    Form3.Stringgrid1.Cells[i,0]:=IntToStr(i);Form3.Stringgrid1.Cells[0,i]:=IntToStr(i);

    Form4.Stringgrid1.Cells[i,0]:=IntToStr(i); Form4.Stringgrid1.Cells[0,i]:=IntToStr(i);

    Form7.StringGrid1.Cells[i+2,0]:=IntToStr(i); Form7.StringGrid2.Cells[i+1,0]:=IntToStr(i);

    Form7.StringGrid3.Cells[i,0]:=IntToStr(i); Stringgrid7.Cells[0,i]:=IntToStr(i);

    end;

    end;

    procedure TForm8.SpinEdit2Change(Sender: TObject);

    begin

    f:=SpinEdit2.Value;

    StringGrid6.ColCount:=f;StringGrid7.ColCount:=f+1;

    StringGrid7.RowCount:=n+1; StringGrid8.ColCount:=f;

    For i:=1 to f do begin

    Stringgrid6.Cells[i-1,0]:=IntToStr(i);

    Stringgrid7.Cells[i,0]:=IntToStr(i);

    Stringgrid8.Cells[i-1,0]:=IntToStr(i);

    end;

    For i:=1 to n+1 do begin

    StringGrid7.Cells[0,i]:=IntToStr(i);

    end;

    end;

    procedure TForm8.Edit1Exit(Sender: TObject);

    begin

    try

    d:=StrToFloat(Edit1.Text);

    except

    Showmessage(Неправельный ввод данных!);

    end;

    end;

    procedure TForm8.Edit2Exit(Sender: TObject);

    begin

    try

    Ip:=StrToFloat(Edit2.Text);

    except

    Showmessage(Неправельный ввод данных!);

    end;

    end;

    procedure TForm8.FormCreate(Sender: TObject);

    begin

    n:=5;f:=5;d:=1.2;Ip:=10;

    For i:=1 to 5 do begin

    Stringgrid1.Cells[i-1,0]:=IntToStr(i); Stringgrid2.Cells[i-1,0]:=IntToStr(i);

    Stringgrid3.Cells[i-1,0]:=IntToStr(i); Stringgrid4.Cells[i-1,0]:=IntToStr(i);

    Stringgrid6.Cells[i-1,0]:=IntToStr(i); Stringgrid7.Cells[0,i]:=IntToStr(i);

    StringGrid7.Cells[i,0]:=IntToStr(i); Stringgrid8.Cells[i-1,0]:=IntToStr(i);

    end;

    For i:=1 to 20 do begin

    For j:=1 to 20 do begin

    Pcovar[i,j]:=0;

    Covar[i,j]:=0;

    end;

    end;

    end;

    procedure TForm8.CheckBox1Click(Sender: TObject);

    begin

    if checkBox1.Checked then Form4.Show;

    end;

    procedure TForm8.N7Click(Sender: TObject);

    var

    keyw: boolean;

    begin

    // Заполнение данных в массивы

    keyw:=true;

    try

    For i:=0 to n-1 do begin

    Zt[i+1]:=StrToFloat(StringGrid1.Cells[i,1]);

    At[i+1]:=StrToFloat(StringGrid2.Cells[i,1]);

    Simd[i+1]:=StrToFloat(Stringgrid3.Cells[i,1]);

    Sij[i+1]:=StrToFloat(Stringgrid4.Cells[i,1]);

    end;

    s:=0;

    For i:=1 to f do begin

    Pkrit[i]:=StrToFloat(Stringgrid8.Cells[i-1,1]);

    Xf[i]:= StrToFloat(Stringgrid6.Cells[i-1,1]);

    s:=s+Xf[i];

    end;

    if s<>1 then begin

    Showmessage(Общяя сумма долей ресурсов в портфеле должна быть меньше равна единице!);

    keyw:=false;

    PageControl1.ActivePage:=TabSheet3;

    FocusControl(StringGrid6);

    end;

    For j:=1 to f do begin

    for i:=1 to n do begin

    Pf[i,j]:=StrToFloat(Stringgrid7.Cells[j,i]);

    end;

    end;

    Except

    ShowMessage(Неправильно заполнены поля!);

    keyw:=false;

    end;

    if keyw=true then begin

    // --------------------------------вычисление мат. ож. NPV

    ENPV:=0;

    For i:=1 to n do begin NPV:=0;

    For j:=1 to i do begin

    NPV:=NPV+Sij[j];

    end;

    NPV:=NPV/i;s:=1;

    for j:=1 to i do begin s:=s*d;end;

    ENPV:=ENPV+(NPV/s);

    end;

    ENPV:=ENPV-Ip;

    //----------------------------------вычисление критерия покрытия Ct

    For i:=1 to n do begin

    if Zt[i]<>0 then Ct[i]:=At[i]/Zt[i] else Ct[i]:=0;

    end;

    For i:=0 to Form2.StringGrid1.ColCount-1 do begin

    Form2.StringGrid1.ColWidths[i]:=Form2.Header1.SectionWidth[i]-1;

    end;

    //-----------------------------------вычисление критерия ликвидности Rt в том числе

    //-----------------------------------и NPVt

    NPV:=0;s:=d;

    For i:=1 to n do begin

    For j:=1 to i-1 do begin s:=s*d;end;

    NPV:=NPV+(Simd[i]/s); s:=d;

    end;

    NPV:=NPV-Ip; // прогнозное NPV

    For i:=1 to n-1 do begin

    NPVi:=0;NPVj:=0;s:=d;

    for j:=1 to i do begin

    For l:=1 to j-1 do begin s:=s*d; end;

    NPVi:=NPVi+(Sij[j]/s);s:=d; //то NPV, которое получаем по имеющ. данным

    end;

    s:=d;

    for j:=i+1 to n do begin

    For l:=1 to j-1 do begin s:=s*d; end;

    NPVj:=NPVj+(Simd[j]/s);s:=d;

    end;

    NPVj:=NPVj-Ip; //то, что осталось от прогногзного NPV

    Rt[i]:=(NPVi+NPVj)/NPV;

    Form2.StringGrid1.Cells[2,i-1]:=FloatToStr(NPVi);

    end;

    NPVi:=0;s:=d;

    for i:=1 to n do begin

    For l:=1 to i-1 do begin s:=s*d; end;

    NPVi:=NPVi+(Sij[i]/s);s:=d;

    end;

    Rt[n]:=NPVi/NPV;Form2.StringGrid1.Cells[2,n-1]:=FloatToStr(NPVi);

    Form2.StringGrid1.RowCount:=n;

    For i:=0 to n-1 do begin

    Form2.StringGrid1.Cells[0,i]:=IntToStr(i+1);

    Form2.StringGrid1.Cells[1,i]:=FloatToStr(Ct[i+1]);

    Form2.StringGrid1.Cells[3,i]:=FloatToStr(Rt[i+1])

    end;

    Form2.Memo1.Lines.Clear;

    Form2.Memo1.Lines.Add(E(NPV) = + FloatToStr(ENPV) + ;);

    // Оценка общего риска проекта

    For j:=1 to f do begin

    Pfsr:=0;

    For i:=1 to n do begin

    Pfsr:=Pfsr+Pf[i,j];

    end;

    Pfsr:=Pfsr/n;

    if Pfsr>Pkrit[j] then

    Form2.Memo1.Lines.Add(Покупка + IntToStr(j) + -го ресурса невыгодна);

    end;

    for i:=1 to n do begin

    sum:=0;s:=1;

    For j:=1 to i do begin

    For l:=1 to 2*j do begin s:=s*d; end;

    sum:=sum+(Covar[j,j]/s);s:=1;

    end;

    sum2:=0;sum3:=0;

    for l:=1 to i-1 do begin

    for j:=l+1 to i do begin

    s: = 1;

    For ii:=1 to l+j do begin s:=s*d; end;

    sum2:=sum2+(Covar[l,j]/s);

    end;

    end;

    for l:=1 to i do begin

    for j:=1 to i do begin

    sum3:=sum3+(Xf[l]*Xf[j]*PCovar[l,j])

    end;

    end;

    Vt[i]:=sum+(2*sum2)+sum3;

    form2.StringGrid1.Cells[4,i-1]:=FloatToStr(Vt[i]);

    end;

    Form2.Show;

    end;

    end;

    procedure TForm8.N4Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (OpenDialog1.Execute) then begin

    AssignFile(Myfile,Opendialog1.FileName);

    Try Reset(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    With Form1 do begin

    ReadLn(MyFile,Date);SpinEdit1.Value:=StrToInt(Date);n:=StrToInt(Date);

    ReadLn(MyFile,Date);SpinEdit2.Value:=StrToInt(Date);f:=StrToInt(Date);

    ReadLn(MyFile,Date);Edit1.Text:=Date;d:=StrToFloat(Date);

    ReadLn(MyFile,Date);Edit2.Text:=Date;Ip:=StrToFloat(Date);

    For i:=0 to n-1 do begin

    ReadLn(MyFile,Date);

    StringGrid1.Cells[i,1]:=Date;

    end;

    For i:=0 to n-1 do begin

    ReadLn(MyFile,Date);

    StringGrid2.Cells[i,1]:=Date;

    End;

    For i:=0 to n-1 do begin

    ReadLn(MyFile,Date);

    StringGrid3.Cells[i,1]:=Date;

    End;

    For i:=0 to n-1 do begin

    ReadLn(MyFile,Date);

    StringGrid4.Cells[i,1]:=Date;

    End;

    For i:=0 to f-1 do begin

    ReadLn(MyFile,Date);

    StringGrid6.Cells[i,1]:=Date;

    End;

    For i:=1 to n do begin

    For j:=1 to f do begin

    ReadLn(MyFile,Date);

    StringGrid7.Cells[i,j]:=Date;

    end;

    end;

    For i:=0 to f-1 do begin

    ReadLn(MyFile,Date);

    StringGrid8.Cells[i,1]:=Date;

    End;

    end;

    With Form3 do begin

    For i:=1 to n do begin

    For j:=1 to n do begin

    ReadLn(MyFile,Date);

    StringGrid1.Cells[i,j]:=Date;

    end;

    End;

    BitBtn1Click(Sender);

    end;

    With Form4 do begin

    For i:=1 to n do begin

    For j:=1 to n do begin

    ReadLn(MyFile,Date);

    StringGrid1.Cells[i,j]:=Date;

    end;

    End;

    BitBtn1Click(Sender);

    end;

    Closefile(myFile);

    end

    else Begin Showmessage(Файл не найден!); Exit;end;

    end;

    procedure TForm8.N5Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (saveDialog1.Execute) then begin

    AssignFile(Myfile,Savedialog1.FileName);

    Try Rewrite(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    With Form8 do begin

    Date:=IntToStr(SpinEdit1.Value);WriteLn(MyFile,Date);

    Date:=IntToStr(SpinEdit2.Value);WriteLn(MyFile,Date);

    Date:=Edit1.Text;WriteLn(MyFile,Date);

    Date:=Edit2.Text;WriteLn(MyFile,Date);

    For i:=0 to n-1 do begin

    Date:=StringGrid1.Cells[i,1];

    WriteLn(Myfile,Date);

    end;

    For i:=0 to n-1 do begin

    Date:=StringGrid2.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    For i:=0 to n-1 do begin

    Date:=StringGrid3.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    For i:=0 to n-1 do begin

    Date:=StringGrid4.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    {For i:=0 to n-1 do begin

    Date:=StringGrid5.Cells[i,1];

    WriteLn(Myfile,Date);

    End; }

    For i:=0 to f-1 do begin

    Date:=StringGrid6.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    For i:=1 to n do begin

    for j:=1 to f do begin

    Date:=StringGrid7.Cells[i,j];

    WriteLn(Myfile,Date);

    end;

    end;

    For i:=0 to f-1 do begin

    Date:=StringGrid8.Cells[i,1];

    WriteLn(Myfile,Date);

    End;

    end;

    With Form3 do begin

    For i:=1 to n do begin

    For j:=1 to n do begin

    Date:=StringGrid1.Cells[i,j];

    WriteLn(Myfile,Date);

    end;

    end;

    end;

    With Form4 do begin

    For i:=1 to n do begin

    For j:=1 to n do begin

    Date:=StringGrid1.Cells[i,j];

    WriteLn(Myfile,Date);

    end;

    end;

    end;

    Closefile(myFile);

    end

    else Begin Showmessage(Ошибка!); Exit;end;

    end;

    procedure TForm8.N9Click(Sender: TObject);

    begin

    Form7.show;

    end;

    procedure TForm8.CheckBox2Click(Sender: TObject);

    begin

    if checkBox2.Checked then Form3.Showmodal;

    end;

    procedure TForm8.StringGrid1KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44):;

    else key: = chr (0); end;

    end;

    procedure TForm8.StringGrid2KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44):;

    else key: = chr (0); end;

    end;

    procedure TForm8.StringGrid3KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44):;

    else key: = chr (0); end;

    end;

    procedure TForm8.StringGrid4KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44),chr(45):;

    else key: = chr (0); end;

    end;

    procedure TForm8.StringGrid6KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44):;

    else key: = chr (0); end;

    end;

    procedure TForm8.StringGrid7KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44):;

    else key: = chr (0); end;

    end;

    procedure TForm8.StringGrid8KeyPress(Sender: TObject; var Key: Char);

    begin

    Case key of

    chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), chr(55),chr(56),chr(57),chr(44):;

    else key: = chr (0); end;

    end;

    end.

    unit normgenerator;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, Grids, StdCtrls, ExtCtrls, ComCtrls, Buttons, Menus;

    procedure normgen(var num1,num2 : real);

    type

    TForm7 = class(TForm)

    PageControl1: TPageControl;

    TabSheet1: TTabSheet;

    GroupBox1: TGroupBox;

    Label2: TLabel;

    StringGrid1: TStringGrid;

    StringGrid2: TStringGrid;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    Label1: TLabel;

    TabSheet2: TTabSheet;

    StringGrid3: TStringGrid;

    SaveDialog1: TSaveDialog;

    OpenDialog1: TOpenDialog;

    procedure FormCreate (Sender: TObject);

    procedure N7Click (Sender: TObject);

    procedure StringGrid1Exit(Sender: TObject);

    procedure StringGrid2Exit(Sender: TObject);

    procedure N3Click (Sender: TObject);

    procedure N2Click(Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    Form7: TForm7;

    i,j, ndvar : integer; {число дтерм. перем-х проекта}

    Svar : array[1..500,1..20] of real;{массив значений сгенерированных сл.вел}

    Xvar : array[1..40,1..20] of real; {массив сл.перемен-х проекта}

    Dvar : array[1..20,1..20] of real; {массив детермиированных перем-х ден. потоков}

    implementation

    uses Risk, Cov;

    {$ R * .dfm}

    procedure normgen(var num1,num2 : real);

    var

    r1,r2,svar : real;

    begin

    Repeat

    r1:=2*random-1;

    r2:=2*random-1;

    svar:=Sqr(r1)+Sqr(r2);

    Until (svar<1);

    svar:=sqrt((-2*ln(svar))/svar);

    num1:=r1*svar;

    num2:=r2*svar;

    end;

    procedure TForm7.N2Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (OpenDialog1.Execute) then begin

    AssignFile(Myfile,Opendialog1.FileName);

    Try Reset(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    ReadLn(MyFile,Date);StringGrid1.ColCount:=StrToInt(Date);

    ReadLn(MyFile,Date);StringGrid1.RowCount:=StrToInt(Date);

    ReadLn(MyFile,Date);StringGrid2.ColCount:=StrToInt(Date);

    ReadLn(MyFile,Date);StringGrid2.RowCount:=StrToInt(Date);

    For i:=0 to StringGrid1.ColCount do begin

    For j:=0 to StringGrid1.RowCount do begin

    ReadLn(MyFile,Date);

    StringGrid1.Cells[i,j]:=Date;

    end;

    end;

    For i:=0 to StringGrid2.ColCount do begin

    For j:=0 to StringGrid2.RowCount do begin

    ReadLn(MyFile,Date);

    StringGrid2.Cells[i,j]:=Date;

    end;

    End;

    Closefile(myFile);

    end

    else Begin Showmessage(Файл не найден!); Exit;end;

    end;

    procedure TForm7.FormCreate(Sender: TObject);

    begin

    StringGrid1.Cells[0,1]:=+; StringGrid1.Cells[0,3]:=-; StringGrid1.Cells[0,5]:=-;

    StringGrid2.Cells[0,1]:=+; StringGrid2.Cells[0,2]:=+; StringGrid2.Cells[0,3]:=-; StringGrid2.Cells[0,4]:=-;

    StringGrid1.Cells[1,1]:=Доходы от реализации продукции;

    StringGrid1.Cells[1,3]:=Эксплутационные затраты;

    StringGrid1.Cells[1,5]:=Налоги;

    StringGrid2.Cells[1,1]:=Возмещение НДС по инвестициям;

    StringGrid2.Cells[1,2]:=Амортизация;

    StringGrid2.Cells[1,3]:=Инвестиции;

    StringGrid2.Cells[1,4]:=Прирост оборотных средств;

    StringGrid1.Cells[1,0]:=Название;

    StringGrid1.Cells[2,0]:=Инт-л;

    StringGrid2.Cells[1,0]:=Название;

    i: = 1;

    While (i<=StringGrid1.ColCount) do begin

    StringGrid1.Cells[2,i]:=Мин.;

    StringGrid1.Cells[2,i+1]:=Макс.;

    i:=i+2;

    end;

    For i:=3 to StringGrid1.ColCount do begin

    StringGrid1.Cells[i,0]:=IntToStr(i-2);

    StringGrid2.Cells[i-1,0]:=IntToStr(i-2);

    StringGrid3.Cells[i-2,0]:=IntToStr(i-2);

    end;

    For i:=1 to 500 do begin

    Stringgrid3.Cells[0,i]:=IntToStr(i);

    end;

    end;

    procedure TForm7.N7Click(Sender: TObject);

    var

    nvar,nn1,nn2,sv1,sv2 : real; //число стох.пер-х проекта,сл.числа,коэф-ты для прироста об.ср-в.

    kvar : integer;

    begin

    nvar:=StringGrid1.RowCount-1;

    For j:=1 to 20 do begin

    Simd[j]:=0;

    end;

    For i:=1 to 500 do begin

    For j:=1 to 20 do begin

    Svar[i,j]:=0;

    end;

    end;

    For i:=1 to 20 do begin

    For j:=1 to 20 do begin

    Covar[i,j]:=0;

    end;

    end;

    for i:=1 to (StringGrid1.ColCount-3) do begin

    j:=1;

    While j<=(nvar-1) do begin

    kvar:=1;

    While kvar<=500 do begin

    normgen(nn1,nn2);

    nn1:=Xvar[j,i]+nn1*Xvar[j+1,i];

    nn2:=Xvar[j,i]+nn2*Xvar[j+1,i];

    if StringGrid1.Cells[0,j]=- then begin

    nn1:=-nn1;

    nn2:=-nn2;

    end;

    if j=5 then begin

    if Xvar[j,i]<>0 then begin

    sv1:=nn1/Xvar[j,i];

    sv2:=nn2/Xvar[j,i];

    end else begin sv1:=0; sv2:=0; end;

    Svar[kvar,i]:=Svar[kvar,i]+sv1*Dvar[4,i];

    Svar[kvar+1,i]:=Svar[kvar+1,i]+sv2*Dvar[4,i];

    end;

    Svar[kvar,i]:=Svar[kvar,i]+nn1;

    Svar[kvar+1,i]:=Svar[kvar+1,i]+nn2;

    kvar:=kvar+2;

    end;

    j:=j+2;

    end;

    for j:=1 to 500 do begin

    For kvar:=1 to ndvar do begin

    if kvar <>4 then Svar[j,i]:=Svar[j,i]+Dvar[kvar,i];

    end;

    end;

    end;

    For i:=1 to StringGrid1.Colcount-3 do begin

    For j:=1 to 500 do begin

    StringGrid3.Cells[i,j]:=FloatToStr(Svar[j,i]);

    Simd[i]:=Simd[i]+Svar[j,i];

    end;

    Simd[i]:=Simd[i]/500;

    Form8.StringGrid3.Cells[i-1,1]:=FloatToStrF(Simd[i],ffFixed,9,2);

    end;

    For i:=1 to StringGrid1.ColCount-3 do begin

    For j:=i to StringGrid1.ColCount-3 do begin

    For kvar:=1 to 500 do begin

    Covar[i,j]:=Covar[i,j]+((Svar[kvar,i]-Simd[i])*(Svar[kvar,j]-Simd[j]));

    end;

    Covar[i,j]:=Covar[i,j]/500;

    Form3.StringGrid1.Cells[j,i]:=FloatToStrF(Covar[i,j],ffFixed,12,2);

    Form3.StringGrid1.Cells[i,j]:=FloatToStrF(Covar[i,j],ffFixed,12,2);

    end;

    end;

    end;

    procedure TForm7.StringGrid1Exit(Sender: TObject);

    begin

    Try

    For j:=3 to StringGrid1.ColCount-1 do begin

    i: = 1;

    While i<=StringGrid1.RowCount-1 do begin

    Xvar[i,j-2]:=StrToFloat(StringGrid1.Cells[j,i]);

    Xvar[i,j-2]:=(Xvar[i,j-2]+StrToFloat(StringGrid1.Cells[j,i+1]))/2;

    Xvar[i+1,j-2]:=Xvar[i,j-2]-StrToFloat(StringGrid1.Cells[j,i]);

    i:=i+2;

    end;

    end;

    except

    ShowMessage(Неправельный ввод данных!);

    FocusControl(StringGrid1);

    end;

    end;

    procedure TForm7.StringGrid2Exit(Sender: TObject);

    var

    nn1 : real;

    begin

    Try

    For j:=2 to StringGrid2.ColCount-1 do begin

    For i:=1 to StringGrid2.RowCount-1 do begin

    Dvar[i,j-1]:=StrToFloat(StringGrid2.Cells[j,i]);

    If StringGrid2.Cells[0,i]=- then Dvar[i,j-1]:=-Dvar[i,j-1]

    end;

    end;

    Except

    ShowMessage(Неправельный ввод данных!);

    FocusControl (StringGrid2);

    end;

    ndvar:=StringGrid2.RowCount-1;

    end;

    procedure TForm7.N3Click(Sender: TObject);

    Var

    Myfile : Textfile;

    Date : String;

    begin

    If (saveDialog1.Execute) then begin

    AssignFile(Myfile,Savedialog1.FileName);

    Try Rewrite(myFile);

    Except

    Showmessage(Ошибка при чтении файла!); Exit;

    end;

    Date:=IntToStr(StringGrid1.ColCount);WriteLn(MyFile,Date);

    Date:=IntToStr(StringGrid1.RowCount);WriteLn(MyFile,Date);

    Date:=IntToStr(StringGrid2.ColCount);WriteLn(MyFile,Date);

    Date:=IntToStr(StringGrid2.RowCount);WriteLn(MyFile,Date);

    For i:=0 to StringGrid1.ColCount do begin

    for j:=0 to StringGrid1.RowCount do begin

    Date:=StringGrid1.Cells[i,j];

    WriteLn(Myfile,Date);

    end;

    end;

    For i:=0 to StringGrid2.ColCount do begin

    For j:=0 to StringGrid2.RowCount do begin

    Date:=StringGrid2.Cells[i,j];

    WriteLn(Myfile,Date);

    end;

    end;

    Closefile(myFile);

    end

    else Begin Showmessage(Ошибка!); Exit;end;

    end;

    end.

    ...........


    Головна сторінка


        Головна сторінка



    Розробка інвестиційного проекту ВАТ "Завод з виробництва труб великого діаметру"

    Скачати 211.26 Kb.