Построение модели организационной структуры фирмы

Теоретические и методологические основы моделирования развития фирм с рентноориентированным управлением. Экономико-математические основы моделирования динамически сложных систем. Функция заимствования: понятие, сущность, свойства, аналитический вид.

Рубрика Экономико-математическое моделирование
Вид дипломная работа
Язык русский
Дата добавления 04.02.2011
Размер файла 630,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

150000

25

1220124

10000

1970000

150000

26

1176009

90000

2050000

150000

27

1191986

20000

2220000

0

28

1047998

200000

2260000

10000

29

1214909

15000

2270000

10000

30

1226890

20000

2280000

10000

31

1243968

30000

2400000

0

32

1160625

200000

2540000

0

33

1227667

23000

2740000

0

34

1056729

200000

2940000

20000

35

1062710

30000

3020000

20000

Таблица 2.2

Неделя

D

p11

P10

R1

P

R2

R3

1

0

1

0

1.006

-0.006

0.002

1

2

0

0.983

0.017

0.989

0.01

0.002

1

3

0

0.979

0.021

0.985

0.015

0.002

1

4

0

0.983

0.017

0.989

0.011

0.002

1

5

0

0.98

0.02

0.992

0.008

0.002

1

6

0

0.974

0.026

0.98

0.019

0.002

1

7

0

0.976

0.024

0.982

0.019

0.002

1

8

0

0.977

0.023

0.983

0.017

0.002

1

9

0

0.978

0.022

0.984

0.016

0.002

1

10

0.001

0.978

0.021

0.984

0.016

0.002

1

11

0.002

0.965

0.033

0.971

0.029

0

-1

12

0.002

0.952

0.046

0.957

0.042

0

-1

13

0.002

0.949

0.049

0.954

0.045

0

-1

14

0.002

0.954

0.044

0.96

0.040

0

-1

15

0.002

0.944

0.054

0.949

0.050

0

-1

16

0.012

0.925

0.063

0.93

0.068

-0.01

-1

17

0.006

0.941

0.053

0.946

0.053

-0.004

-1

18

0.002

0.94

0.058

0.945

0.055

0

-1

19

0

0.94

0.06

0.945

0.054

0.002

1

20

0

0.939

0.061

0.944

0.055

0.002

1

21

0

0.936

0.064

0.941

0.059

0.002

1

22

0.002

0.934

0.064

0.939

0.059

0

-1

23

0.002

0.934

0.064

0.939

0.060

0

-1

24

0.005

0.931

0.064

0.936

0.064

-0.003

-1

25

0.005

0.93

0.065

0.935

0.064

-0.003

-1

26

0.005

0.928

0.067

0.933

0.066

-0.003

-1

27

0

0.931

0.069

0.936

0.063

0.002

1

28

0

0.923

0.077

0.928

0.071

0.002

1

29

0

0.936

0.064

0.941

0.059

0.002

1

30

0

0.938

0.062

0.943

0.056

0.002

1

31

0

0.938

0.062

0.943

0.056

0.002

1

32

0

0.932

0.068

0.937

0.062

0.002

1

33

0

0.932

0.068

0.937

0.062

0.002

1

34

0.001

0.917

0.082

0.922

0.076

0.001

1

35

0.001

0.918

0.081

0.923

0.076

0.001

1

Пример работы программы:

Рис. 2.1

Рис. 2.2

§3. Моделирование процесса оптимального размещения финансовых средств в условиях риска

Рассмотрим задачу оптимального использования банком средств вкладчиков. Для простоты будем рассматривать небольшой величины банк, который выдает кредиты только юридическим лицам на определенные проекты.

Пусть

i--процентная ставка по вкладам населения (для простоты будем считать процентные ставки по вкладам юридических и физических лиц равными);

sk--величина взноса к-ого вкладчика;

r--процентная ставка, по которой банк выдает кредиты юридическим лицам на финансирование того или иного проекта;

m--общее количество вкладов на счетах рассматриваемого банка в данный момент времени.

В модели предполагается, что банк в состоянии кредитовать ограниченное количество людей.

Пусть

n--максимальное количество кредитуемых лиц;

bk--необходимый для реализации проекта объем кредита;

Ok--заявленная клиентом величина отдачи от проекта;

pk--вероятность получения отдачи Ок от данного проекта;

xkЄ[0,1]--доля выдаваемого кредита от запрашиваемой суммы;

xkbk--затраты банка на кредитование к-ого проекта;

gk--мера риска k-ого проекта.

Мера риска определяется аналитиками банка на основе статистических данных, информации о клиенте, коэффициентов риска, ставки налога и т. д.

Выпишем задачу выбора банком выгодного по соотношению “прибыльность-рисковость” проекта.

Функция цели включает в себя две функции: по минимизации риска и максимизации отдачи.

Ограничения:

критерий целесообразности выдачи кредита на к-й проект

bk(1+r)xk?pkOk; (2)

критерий целесообразности выдачи кредитов именно на эти n проектов

(3)

Задача (1)-(3) является задачей векторной оптимизации. Предлагается решать ее методом гарантированного результата.

Введем некоторые обозначения.

Обозначим функции цели (1) и (1') через f1(x) и f2(x) соответственно.

G={x: bk(1+r)xk?pkOk; (1+r)}.

Задача вида

f1(x)= (4)

xЄG

называется частной задачей. Так как целевая функция f1(x) непрерывна и непрерывно дифференцируема, а множество G--непустой компакт, то частная задача (4) разрешима, т. е. возможно получение величины f1max(x).

Задача вида

f2(x)=

xЄG

является второй частной задачей, для нее справедливы те же утверждения.

Блок-схема решения задачи размещения финансовых средств в условиях риска.

§4 Программная реализация некоторых вспомогательных задач.

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

Ax?(?)B, x?0, Cx>max(min).

В процедуре реализован модифицированный симплекс-метод.

Были использованы следующие формальные параметры:

входные:

N-число переменных,

М-число ограничений,

А-матрица исходных данных;

выходные:

X-вектор решения,

PI-вектор оценок строк.

Описание переменных:

Массив X:

X[i], i=1...N-оптимальный план;

X[N+1]-признак решения:

1-решение;

0-несовместность;

-1-неограниченность функции цели.

Матрица А:

A[i, j], i=1..N, j=1..M-коэффициенты в ограничениях;

A[j, N+1] -- правые части;

А[j, N+2]--тип ограничений:

1--при неравенстве вида `<=';

0--при равенстве;

-1--при неравенстве вида `>=';

A[M+1,i], i=1..N--коэффициенты целевой функции;

A[M+1, N+1]--признак целевой функции:

1-MAX;

-1-MIN.

Для работы с вышеуказанным модулем нами была создана программа , написанная на языке Delphi 5.0. Фрагменты работы программ представлены на рисунках 4.1, 4.2.

Рис.4.1

Рис. 4.2

§5. Оценка финансового риска как основного показателя кредитоспособности заемщика

5.1 Постановка задачи

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

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

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

5.1.1. Проверка источников дохода клиента

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

5.1.2 Косвенные способы подтверждения уровня дохода клиента

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

5.1.3 Расчет чистого среднемесячного дохода клиента

Кредитный специалист проводит оценку дохода клиента на основе 1азмера чистого среднемесячного дохода за последние 12 месяцев. Среднемесячный размер дохода определяется как среднеарифметическое значение размеров месячных доходов в валюте выдаваемого кредита. Если за последние несколько месяцев уровень дохода клиента повысился, то расчет среднемесячного дохода определяется исходя из размера доходов, полученных клиентом за последний текущий период (не менее трех месяцев) после повышения уровня дохода.

5.1.4 Расчет постоянных расходов клиентов

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

регулярные платежи, связанные с поддержанием жизнедеятельности клиента и его семьи (питание, образование, мед. обслуживание)

расходы клиента, связанные с отдыхом

расходы клиента, связанные с содержанием имущества (автомобиль, квартира)

расходы клиента, связанные с исполнением обязательств по текущему кредиту (если на момент подачи заявки клиент пользуется кредитом)

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

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

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

5.1.5 Коэффициенты, применяемые при оценке финансового риска

Для определения способности клиента погашать кредит необходимо провести расчет двух коэффициентов:

П/ОД

П/СД

Коэффициент П/ОД определяет предельно допустимую долю расходов по кредиту (платежи по основному долгу и процентам) в доходах клиента. Превышение допустимых значений этого коэффициента при установлении размера предоставляемого клиенту кредита свидетельствует о повышенном финансовом риске и низкой способности клиента своевременно погашать кредит.

Коэффициент П/СД показывает долю расходов клиента (с учетом ежемесячного аннуитетного платежа) в его бюджете. Для определения значения данного коэффициента используется расчет минимального потребительского бюджета, проводимый в соответствии с указаниями в п. 1.4.

5.1.6 Итоговая оценка финансового риска

Итоговая оценка финансового риска определяется кредитным специалистом экспертным путем на основе:анализа источников дохода клиентарасчета чистого среднемесячного доходаанализа постоянных расходовзначений коэффициентов П/ОД и П/СД При этом финансовый риск может быть оценен как: * низкий * приемлемый * высокий 5.2 Программная реализация поставленной задачи.

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

Рассмотрим работу программы на конкретном примере. Клиент желает приобрести автомобиль стоимостью 200 000 рублей, из которых он имеет 50 000 рублей, а остальные 150 000 рублей собирается взять в кредит. Для этого он выбирает для себя программу кредитования физических лиц на покупку автомобилей «Автоэкспресс», предлагаемую филиалом ОАO «МДМ-Банк» в г. Воронеж.

По ее условиям кредит предоставляется сроком до четырех лет под 12% годовых при доле собственных средств более 20% от стоимости автомобиля (или 13% /10% соответственно). Максимальный размер кредита не должен превышать $ 20 000 USD в рублевом эквиваленте.

Итак, мы имеем:стоимость автомобиля = 200 000 руб.сумма кредита = 150 000 руб.годовая процентная ставка = 12%срок кредитования = 48 месяцев

На рис. 5.1 видим эту информацию, введенную в соответствующие поля в разделе «Определение аннуитета» и найденный ежемесячный аннуитетплатеж. Рис. 5.1 «Определение аннуитета»

Теперь необходимо проверить выполнение минимальных требований, предъявляемых к клиенту. Для этого следует заполнить мини-анкету в разделе «Этап 1». В результате чего, будет проведена проверка данных, и ее итоги появятся в наглядной форме напротив каждого пункта мини-анкеты. Это поможет кредитному специалисту указать клиенту на его несоответствие требования для их последующего устранения. Работу программы по этому пункту можно увидеть на рис.5.2. Рис 5.2. «Этап 1 - Определение минимальных требований к заемщику»

Если минимальные требования клиентом выполняются, то можно переходить к следующему этапу - «Определение текущего дохода». Данный этап является ключевым, т.к. именно значение текущего доход; непосредственно влияет на оставшиеся характеристики, такие как ожидаемый доход, свободный доход, а также влияет на значение контрольных коэффициентов П/ОД и П/СД.

Итак, теперь от клиента требуется информация о доходах и их структуре.

Программа сделана таким образом, чтобы смысловое значение всех полей было интуитивно понятным. Но, все-таки, значения некоторых пунктов следует пояснять. Так, например, в разделе «Этап 2» в поле «Заявленный доход» следует указать сумму совокупного дохода клиента, а в поле «Подтвержденный доход» только ту его часть, которую клиент может непосредственно подтвердить документально по установленной форме 2-НДФЛ. А далее нужно указать является ли заявленный доход, целиком подтвержденным, или нет, т.к. от этого зависит последующий анализ в части «Косвенные способы подтверждения дохода». Рис.5.3 «Этап 2 - Определение текущего дохода заемщика» Пусть наш клиент заявил доход в 10 000 рублей. Из них его реально заработной платой являются 6 500 рублей. Кроме того, он имеет документы, подтверждающие его расходы по различным пунктам данного раздела. После анализа предоставленной информации, программа выдала следующий результат. Текущий доход клиента = 9 125 рублей, что является хорошим показателем, т.к. практически вся заявленная сумма оказалась подтвержденной. Результат виден на рис.5.3. Следующий раздел - «Этап 3 - Определение ожидаемого дохода заемщика». Эта величина нужна для того, чтобы кредитный специалист мог дать оценку того, насколько стабильным будет доход клиента, и как он будет соразмеряться с ежемесячными аннуитетными платежами. Ведь от этого напрямую зависит качество обслуживания кредита клиентом. Вся необходимая информация о клиенте отражена на рис. 5.4. На ее основании посчитана величина ожидаемого дохода заемщика, которая в данном случае равна 5 018,75 рублей. Рис.5.4 «Этап 3--Определение ожидаемого дохода заемщика»

Далее переходим к разделу «Этап 4 - Определение свободного дохода заемщика». Фактически, Свободный доход = Текущий доход - Обязательные ежемесячные платежи. Под обязательными платежами понимаются те платежи, от которых невозможно отказаться или сократив их по тем или иным причинам. Так. например, очевидно что обязательной является плата за коммунальные услуги, образование алименты, платежи по ранее взятому кредиту, выплаты назначенные судом и т.д. Но кроме это следует учитывать количество членов семьи, проживающих вместе с клиентом. На Рис. 5.5 представлен результат заполнения анкеты, из которого видно, что величина свободного дохода клиента равна 1516,875. Рис. 5.5. «Этап 4--Определение свободного дохода заемщика»

Наконец, когда предоставлены и обработаны все сведения и определены основные параметры, характеризующие с финансовой стороны заемщика, можно приступать к расчету коэффициентов. Не смотря на то, что в п. 3.1.5 шла речь о двух коэффициентах (П/ОД и П/СД), в программе присутствует третий - КЛ/ЦИ. Его появление обусловлено условиями по выбранной программе кредитования и пороговые значения являются общедоступными.КЛ/ЦИ = Сумма кредита / Стоимость автомобиля

В различных программах кредитования размер доли собственных средств заемщика может быть разной. Коэффициент КЛ/ЦИ показывает в процентах максимальный размер суммы от стоимости автомобиля, которую готов предоставить Банк.

Пороговые значения остальных двух коэффициентов являются коммерческой тайной Банка и поэтому не могут быть приведены в рамках этого отчета.

Кредитный специалист выносит свое решение об уровне финансового риска опираясь в основном именно на значения этих коэффициентов.

В разделе «Заключение - Определение расчетных коэффициентов) имеется 3 поля, в которые, при нажатии на кнопку «Результат» подставляются значения П/ОД, П/СД и КЛ/ЦИ. А также есть 3 секции, в которые выставляются результаты интерпретации значений, относительно пороговых. Все это отражено на Рис. 5.6. Рис. 5.6. «Заключение--Определение расчетных коэффициентов»

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

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

Заключение

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

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

Представленная в работе задача оценки финансового риска заемщика наглядным образом демонстрирует работу банковских программ по определению кредитоспособности субъекта. . СПИСОК ЛИТЕРАТУРЫ

1. О. А. Шомко, Капитализация статусной ренты с системах корпоративного управления.

2. Львов Д., Гребенников В., Устюжанина Е. Концепция национального имущества //Вопросы экономики, 2001,№7.

3. Львов Д. Экономика развития. -М .:Экзамен, 2002.

4. Капелюшников Р. Собственность и контроль в российской промышленности // Вопросы экономики, 2001, №12.

5. Рыбченко Н. Е., Сделки слияния, поглощения и разделения как инструмент реализации корпоративной стратегии и методы оценки их эффективности.

6. Яновский Л. П. Динамическая модель выживания крупной фирмы с ренто-ориентированным менеджментом / Л. П. Яновский // Экономика и матеме-тические методы--2000. -Т. 36, №2. --c.34-38.

7. Мишурова И. В. Управление мотивацией персонала / И. В. Мишурова,

П. В. Кутелев / --М. : ИКЦ “ Март”, 2003.--344c.

8. Лахтин Г. А. Управление в организации и мотивации персонала

/ Г. А. Лахтин / --М. :Наука, 2002.--254с.

9. Каралев А. П. Моделирование математического стимулирование.

/ А. П. Каралев / --М. : ИНФРА-М, 1999. --388c.

10. Новиков Д. А. Стимулирование в социально- экономических системах

( базовые математические модели ). / Д. А. Новиков // М. : ИПУРАН, 1998.--216с.

11. Жданов С.А. Экономические модели и методы управления./ С.А. Жданов.- М.: Дело, 1998.-С. 87-101.

12. Вишняков И.В. Экономико-математические модели оценки деятельности коммерческих банков. / И.В. Вишняков.-СПб.-1999.-С.23-39.

13. Шелобаев С.И. Математические методы и модели в экономике, финансах, бизнесе. /С.И. Шелобаев.-М.: Дело, 2000.-С. 71-79.

14. Болтянский В. Г. Математические методы оптиального управления. / В.Г. Болтянский-М.: Наука, 1969.-С. 111-125.

15. Виленский В.П. Об одном подходе к учету влияния неопределенности и риска на эффективность проектов. / В.П. Виленский // Экономика и математические методы.-2002.-Т. 38, № 4.-С. 24-31.

16. Филиппов А.Ф. Сборник задач по дифференциальным уравнениям. / А.Ф. Филиппов.-М.: Наука, 1992.

17. Фараонов В.В. Delphi 5: Учебный курс. / В.В. Фаронов. - М.: Нолидж, 1999.

18. Курс экономической теории. Общие основы. Микроэкономика. Макроэкономика. / М.: Изд-во МГУ, 1997.

19. Хованов Н.В. Математические модели риска и неопределенности. / Н.В. Хованов.-М.: Наука, 2001.

20. Моделирование рисковых ситуаций в экономике и бизнесе. / А.М. Дубров, Б.А. Лагоша, Е.Ю. Хрусталев и др.; Под ред. Б.А. Лагоши. - М.: Финансы и статистика, 2001.

21. Понтрягин П. Математическая теория оптимальных процессов. / П. Понтрягин / М.: Наука, 1976.

22. Математические методы в экономике. / О. О. Замков, А. В. Толстопятенко Черемных Ю. Н./ М., 1998.

Приложение.

Листинг программы

unit Unit1;

interface

uses

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

Dialogs, Menus, ComCtrls, StdCtrls, XPMan, ActnMan, ActnColorMaps,

ExtCtrls,ComObj,Math;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

MainMenu1: TMainMenu;

XLS1: TMenuItem;

XLS2: TMenuItem;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

lbledtSumCred: TLabeledEdit;

lbledtYRate: TLabeledEdit;

lbledtSrok: TLabeledEdit;

lbledtAnnuitet: TLabeledEdit;

btnAnnuitetCount: TButton;

Label1: TLabel;

rgVozrast: TRadioGroup;

rgReg: TRadioGroup;

rgTrud: TRadioGroup;

rgDoc: TRadioGroup;

rgStazh: TRadioGroup;

rgCred: TRadioGroup;

rgChild: TRadioGroup;

rgArmy: TRadioGroup;

rgIncome: TRadioGroup;

Label2: TLabel;

pnlVozrast: TPanel;

pnlReg: TPanel;

pnlTrud: TPanel;

pnlDoc: TPanel;

pnlStazh: TPanel;

pnlCred: TPanel;

pnlIncome: TPanel;

pnlChild: TPanel;

pnlArmy: TPanel;

btnCheckClient: TButton;

XPManifest1: TXPManifest;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

cbxFamMembers: TComboBox;

Label8: TLabel;

lbledtRentPay: TLabeledEdit;

lbledtCredPay: TLabeledEdit;

lbledtEduPay: TLabeledEdit;

lbledtAlimPay: TLabeledEdit;

lbledtOthersPay: TLabeledEdit;

btnFixPayCount: TButton;

lbledtFreeIncome: TLabeledEdit;

N1: TMenuItem;

lbledtTotalIncome: TLabeledEdit;

lbledtProvedIncome: TLabeledEdit;

Label9: TLabel;

cbxProvedIncome: TComboBox;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

cbxClient: TComboBox;

cbxAccVol: TComboBox;

cbxPropCost: TComboBox;

cbxShare: TComboBox;

cbxExpense: TComboBox;

cbxPrePaid: TComboBox;

btnCurrentIncomeCount: TButton;

lbledtCurrentIncome: TLabeledEdit;

lbledtCarPrice: TLabeledEdit;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

Label25: TLabel;

cbxPos: TComboBox;

cbxSpec: TComboBox;

cbxStazh: TComboBox;

cbxLastStazh: TComboBox;

cbxJobChange: TComboBox;

cbxCareer: TComboBox;

cbxEdu: TComboBox;

cbxAge: TComboBox;

cbxCredHistory: TComboBox;

btnAverageIncomeCount: TButton;

lbledtAverageIncome: TLabeledEdit;

Label26: TLabel;

lbledtPOD: TLabeledEdit;

lbledtPSD: TLabeledEdit;

lbledtKLCI: TLabeledEdit;

pnlPOD: TPanel;

pnlPSD: TPanel;

pnlKLCI: TPanel;

Button1: TButton;

procedure btnAnnuitetCountClick(Sender: TObject);

procedure btnCheckClientClick(Sender: TObject);

procedure btnFixPayCountClick(Sender: TObject);

procedure btnCurrentIncomeCountClick(Sender: TObject);

procedure btnAverageIncomeCountClick(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

// Вспомогательные глобальные переменные

// для хранения основных рассчетных параметров заемщика

gSummaCredita : real;

gCarprice : real;

gAnnuitet : real; // размер аннуитета

gCurrentIncome : real; // текущий доход

gAverageIncome : real; // ожидаемый доход

gFreeIncome : real;

implementation

{$R *.dfm}

//

// Рассчет аннуитетного платежа

//

procedure TForm1.btnAnnuitetCountClick(Sender: TObject);

var

yrate,mrate,carprice,summacredita,annuitet : real;

srok : integer;

begin

gAnnuitet:=0;

try

carprice:=StrToFloat(lbledtCarPrice.Text);

except

on EConvertError do

begin

MessageDlg('Стоимость автомобиля введена не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

gCarPrice:=carprice;

try

summacredita:=StrToFloat(lbledtSumCred.Text);

except

on EConvertError do

begin

MessageDlg('Сумма кредита введена не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

gSummaCredita:=summacredita;

if (summacredita > carprice) or ((summacredita/carprice) > 0.8) then

begin

MessageDlg('Сумма кредита не может превышать стоимость или составлять > 80% от нее !', mtWarning, [mbOk], 0);

Exit;

end;

try

yrate:=StrToFloat(lbledtYRate.Text)/100;

except

on EConvertError do

begin

MessageDlg('Процентная ставка введена не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

try

mrate:=yrate / 12;

except

on EZeroDivide do

begin

MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);

Exit;

end;

end;

try

srok:=StrToInt(lbledtSrok.Text);

except

on EConvertError do

begin

MessageDlg('Срок кредитования введен не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

if (srok > 0) then

try

annuitet:=(summacredita*mrate)/(1-(1/exp((srok-1)*ln(1+mrate))));

except

on EInvalidOp do

begin

MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);

Exit;

end;

on EZeroDivide do

begin

MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);

Exit;

end;

end

else

begin

MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);

Exit;

end;

gAnnuitet:=annuitet;

lbledtAnnuitet.Text:=FloatToStr(Round(annuitet));

end;

//

// Проверка выполнения минимальных требований к заемщику

//

procedure TForm1.btnCheckClientClick(Sender: TObject);

begin

if (rgVozrast.ItemIndex = 0) then

pnlVozrast.Caption:='V'

else

pnlVozrast.Caption:='X';

if (rgReg.ItemIndex = 0) then

pnlReg.Caption:='V'

else

pnlReg.Caption:='X';

if (rgTrud.ItemIndex = 0) then

pnlTrud.Caption:='V'

else

pnlTrud.Caption:='X';

if (rgDoc.ItemIndex = 0) then

pnlDoc.Caption:='V'

else

pnlDoc.Caption:='X';

if (rgStazh.ItemIndex = 0) then

pnlStazh.Caption:='V'

else

pnlStazh.Caption:='X';

if (rgCred.ItemIndex = 0) then

pnlCred.Caption:='V'

else

pnlCred.Caption:='X';

if (rgIncome.ItemIndex = 0) then

pnlIncome.Caption:='V'

else

pnlIncome.Caption:='X';

if (rgChild.ItemIndex = 0) then

pnlChild.Caption:='V'

else

pnlChild.Caption:='X';

if (rgArmy.ItemIndex = 0) then

pnlArmy.Caption:='V'

else

pnlArmy.Caption:='X';

end;

//

// Рассчет свободного дохода

//

procedure TForm1.btnFixPayCountClick(Sender: TObject);

var

famMembers : integer;

rentPay, credPay, eduPay, alimPay, othersPay,fixPay,famKoef,freeIncome : real;

begin

try

famMembers:=StrToInt(cbxFamMembers.Text); // проверить на 0

except

on EConvertError do

begin

MessageDlg('Кол-во сожителей введено не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

case famMembers of

0 : famKoef:=0.1;

1 : famKoef:=0.2;

2 : famKoef:=0.4;

3 : famKoef:=0.5;

4 : famKoef:=0.6;

5 : famKoef:=0.7;

end;

try

rentPay:=StrToFloat(lbledtRentPay.Text);

except

on EConvertError do

begin

MessageDlg('Арендные платежи введены не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

try

credPay:=StrToFloat(lbledtCredPay.Text);

except

on EConvertError do

begin

MessageDlg('Платежи по кредитам введены не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

try

eduPay:=StrToFloat(lbledtEduPay.Text);

except

on EConvertError do

begin

MessageDlg('Платежи за образование введены не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

try

alimPay:=StrToFloat(lbledtAlimPay.Text);

except

on EConvertError do

begin

MessageDlg('Алименты введены не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

try

othersPay:=StrToFloat(lbledtOthersPay.Text);

except

on EConvertError do

begin

MessageDlg('Прочие платежи введены не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

fixPay:=rentPay+credPay+eduPay+alimPay+othersPay;

freeIncome:=(gAverageIncome*(1-famKoef))-fixPay;

lbledtFreeIncome.Text:=FloatToStr(freeIncome);

gFreeIncome:=freeIncome;

end;

//

// Определение текущего дохода заемщика

//

procedure TForm1.btnCurrentIncomeCountClick(Sender: TObject);

var

totalIncome, provedIncome, currentIncome : real;

k, k1, k2, k3, k4, k5, k6, k7 : real;

begin

try

totalIncome:=StrToFloat(lbledtTotalIncome.Text);

except

on EConvertError do

begin

MessageDlg('Заявленный доход введен не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

try

provedIncome:=StrToFloat(lbledtProvedIncome.Text);

except

on EConvertError do

begin

MessageDlg('Подтвержденный доход введен не верно!', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxProvedIncome.ItemIndex of

0 : k1:=1; // подтвержденный

1 : k1:=0.6; // неподтвержденный

2 : k1:=0.4; // неподтвержденный без.док.

else

begin

MessageDlg('Не выбрана форма подтверждения дохода!', mtWarning, [mbOk], 0);

Exit;

end;

end;

if (k1 <> 1) then // есть неподтвержденная часть дохода

begin

case cbxClient.ItemIndex of

0 : k2:=0.05;

1 : k2:=0;

else

begin

MessageDlg('Не заполнено поле "Заемщик - клиент Банка" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxAccVol.ItemIndex of

0 : k3:=0.1;

1 : k3:=0.2;

2 : k3:=0.3;

else

begin

MessageDlg('Не заполнено поле "Объемы оборотов по счету" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxPropCost.ItemIndex of

0 : k4:=0.05;

1 : k4:=0.1;

2 : k4:=0.2;

else

begin

MessageDlg('Не заполнено поле "Стоимость имущества" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxShare.ItemIndex of

0 : k5:=0;

1 : k5:=0.05;

2 : k5:=0.1;

3 : k5:=0.2;

else

begin

MessageDlg('Не заполнено поле "Размер доли" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxExpense.ItemIndex of

0 : k6:=0;

1 : k6:=0.1;

2 : k6:=0.2;

else

begin

MessageDlg('Не заполнено поле "Размер расходов" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxPrePaid.ItemIndex of

0 : k7:=0;

1 : k7:=0.1;

2 : k7:=0.15;

3 : k7:=0.2;

else

begin

MessageDlg('Не заполнено поле "Размер доли собств. ср-в" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

k:=k1+k2+k3+k4+k5+k6+k7;

if (k < 1) then

currentIncome:=provedIncome+(totalIncome-provedIncome)*k

else

currentIncome:=totalIncome;

end

else // k1 = 1 - весь доход подтвержден - короткая формула

currentIncome:=totalIncome;

lbledtCurrentIncome.Text:=FloatToStr(currentIncome);

gCurrentIncome:=currentIncome;

end;

procedure TForm1.btnAverageIncomeCountClick(Sender: TObject);

var

averageIncome,k,k1,k2,k3,k4,k5,k6,k7,k8,k9 : real;

begin

case cbxPos.ItemIndex of

0 : k1:=0.25;

1 : k1:=0.2;

2 : k1:=0.15;

3 : k1:=0.1;

4 : k1:=0.05;

5 : k1:=0.2;

else

begin

MessageDlg('Не заполнено поле "Должность" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxSpec.ItemIndex of

0 : k2:=0.15;

1 : k2:=0.15;

2 : k2:=0.1;

3 : k2:=0.05;

4 : k2:=0.05;

5 : k2:=0.1;

6 : k2:=0.1;

else

begin

MessageDlg('Не заполнено поле "Обязанности" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxStazh.ItemIndex of

0 : k3:=0.2;

1 : k3:=0.15;

2 : k3:=0.05;

else

begin

MessageDlg('Не заполнено поле "Стаж" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxLastStazh.ItemIndex of

0 : k4:=0.1;

1 : k4:=0.05;

2 : k4:=0;

else

begin

MessageDlg('Не заполнено поле "Последний стаж" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxJobChange.ItemIndex of

0 : k5:=0.1;

1 : k5:=0.05;

2 : k5:=0;

else

begin

MessageDlg('Не заполнено поле "Смена работы" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxCareer.ItemIndex of

0 : k6:=0.05;

1 : k6:=0;

else

begin

MessageDlg('Не заполнено поле "Карьерный рост" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxEdu.ItemIndex of

0 : k7:=0.15;

1 : k7:=0.1;

2 : k7:=0.05;

3 : k7:=0.05;

4 : k7:=0;

else

begin

MessageDlg('Не заполнено поле "Образование" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxAge.ItemIndex of

0 : k8:=0;

1 : k8:=0.15;

2 : k8:=0.1;

3 : k8:=0.05;

else

begin

MessageDlg('Не заполнено поле "Возраст" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

case cbxCredHistory.ItemIndex of

0 : k9:=0.05;

1 : k9:=0;

else

begin

MessageDlg('Не заполнено поле "Кредитная история" !', mtWarning, [mbOk], 0);

Exit;

end;

end;

k:=k1+k2+k3+k4+k5+k6+k7+k8+k9;

if (k > 1) then k:=1;

averageIncome:=gCurrentIncome*k;

lbledtAverageIncome.Text:=FloatToStr(averageIncome);

gAverageIncome:=averageIncome;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

pod,psd,klci : real;

begin

try

pod:=gAnnuitet/gAverageIncome;

psd:=gAnnuitet/gFreeIncome;

klci:=gSummaCredita/gCarPrice;

lbledtPOD.Text:=FloatToStr(RoundTo(pod,-3));

lbledtPSD.Text:=FloatToStr(RoundTo(psd,-3));

lbledtKLCI.Text:=FloatToStr(RoundTo(klci,-3));

except

on EInvalidOp do

begin

MessageDlg('Приступайте к рассчету коэф-тов в последнюю очередь !', mtWarning, [mbOk], 0);

Exit;

end;

end;

if (pod <= 0.45) then

pnlPOD.Caption:='V'

else

pnlPOD.Caption:='X';

if (psd <= 0.7) then

pnlPSD.Caption:='V'

else

pnlPSD.Caption:='X';

if (klci <= 0.8) then

pnlKLCI.Caption:='V'

else

pnlKLCI.Caption:='X';

end;

End.

unit UnitB;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

Edit1: TEdit;

Label1: TLabel;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Label5: TLabel;

Edit4: TEdit;

Label6: TLabel;

Label7: TLabel;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

BitBtn1: TBitBtn;

Edit5: TEdit;

Edit6: TEdit;

Label8: TLabel;

Label9: TLabel;

Edit7: TEdit;

Label10: TLabel;

Edit8: TEdit;

Label11: TLabel;

Edit9: TEdit;

Label12: TLabel;

Edit10: TEdit;

Label13: TLabel;

Edit11: TEdit;

Label14: TLabel;

Label15: TLabel;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

p11,r,R1,ii,gr,R2,R3,P,K,C,T,S,RR,p10,D,a,i:extended;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

gr:=strtofloat(Edit5.Text);

//процентная ставка по кредитам в течении одного

//временного периода=одной неделе

r:=gr/52;

//Общая сумма долга

C:=strtofloat(Edit6.Text);

//Временной период

T:=strtofloat(Edit7.Text);

//Общая сумма поданных исков

S:=strtofloat(Edit8.Text);

//ставка рефинансирования

ii:=strtofloat(Edit9.Text);

//ставка рефинансирования в течении одного

//временного периода=одной неделе

i:=ii/52;

//сумма выплат по кредитам

RR:=strtofloat(Edit10.Text);

//еженедельные издержки по ведению счетов

K:=strtofloat(Edit11.Text);

//вероятности распределения по категориям:

//выплаты,долг,безнадежный долг

p10:=RR/(T*C);

D:=S/(T*C);

p11:=1-p10-D;

//индикатор риска будущих потерь

R1:=p11*(1+r);

//индикатор риска принципиальной убыточности

//кредитных операций

R2:=(1+r)*(1-D*(1+i))/(1+i)-1;

//определение значения индикатора риска

//нерентабельности операций

a:=C*R2-K*(((1+r)*(1+r)*i)/(r+i+r*i));

If a>0 then R3:=1 else R3:=-1;

//индикатор оптимальности потока выплат по кредитам

P:=p10-(1-D-1/(1+r));

//Вывод значений на экран

Edit1.Text:=floattostr(R1);

Edit2.Text:=floattostr(R2);

Edit3.Text:=floattostr(R3);

Edit4.Text:=floattostr(P);

//Сравнение индикаторов с допустимыми значениями

If R1<1 then Panel1.Caption:='V' else Panel1.Caption:='X';

If R2>0 then Panel2.Caption:='V' else Panel2.Caption:='X';

If R3=1 then Panel3.Caption:='V' else Panel3.Caption:='X';

If P<0.001 then Panel4.Caption:='V' else Panel4.Caption:='X';

end;

End.


Подобные документы

  • Сущность экономико-математической модели, ее идентификация и определение достаточной структуры для моделирования. Построение уравнения регрессии. Синтез и построение модели с учетом ее особенностей и математической спецификации. Верификация модели.

    контрольная работа [73,9 K], добавлен 23.01.2009

  • Статические и динамические модели. Анализ имитационных систем моделирования. Система моделирования "AnyLogic". Основные виды имитационного моделирования. Непрерывные, дискретные и гибридные модели. Построение модели кредитного банка и ее анализ.

    дипломная работа [3,5 M], добавлен 24.06.2015

  • Гомоморфизм - методологическая основа моделирования. Формы представления систем. Последовательность разработки математической модели. Модель как средство экономического анализа. Моделирование информационных систем. Понятие об имитационном моделировании.

    презентация [1,7 M], добавлен 19.12.2013

  • Теоретические основы имитационного моделирования. Пакет моделирования AnyLogic TM, агентный подход моделирования. Разработка имитационной модели жизненного цикла товара ООО "Стимул", модели поведения потребителей на рынке и специфика покупателей.

    курсовая работа [2,0 M], добавлен 26.11.2010

  • Понятие и типы моделей. Этапы построения математической модели. Основы математического моделирования взаимосвязи экономических переменных. Определение параметров линейного однофакторного уравнения регрессии. Оптимизационные методы математики в экономике.

    реферат [431,4 K], добавлен 11.02.2011

  • Основы финансового анализа рынка ценных бумаг. Основы модели АРТ. Методологические подходы к анализу фондового рынка. Теоретические и практические аспекты АРТ-моделирования: воплощение теоретических посылок в модель. АРТ-моделирование в практика.

    курсовая работа [2,9 M], добавлен 27.03.2008

  • Характеристика простых и сложных систем, их основные признаки. Общие принципы и этапы экономико-математического моделирования. Назначение рабочего этапа системного анализа - выявление ресурсов и процессов, композиция целей, формулирование проблемы.

    контрольная работа [47,7 K], добавлен 11.10.2012

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

    курсовая работа [1,3 M], добавлен 02.10.2009

  • Эффективность макроэкономического прогнозирования. История возникновения моделирования экономики в Украине. Особенности моделирования сложных систем, направления и трудности моделирования экономики. Развитие и проблемы современной экономики Украины.

    реферат [28,1 K], добавлен 10.01.2011

  • Основные понятия и типы моделей, их классификация и цели создания. Особенности применяемых экономико-математических методов. Общая характеристика основных этапов экономико-математического моделирования. Применение стохастических моделей в экономике.

    реферат [91,1 K], добавлен 16.05.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.