Автоматизация расчетов в экономических задачах, связанных с теорией рисков

Сущность рисков и их классификация. Роль рисков в экономической деятельности. Имитационная модель получения возможных сценариев величин денежных потоков. Применение математического аппарата нечетких множеств для оценки риска инвестиционного проекта.

Рубрика Экономика и экономическая теория
Вид дипломная работа
Язык русский
Дата добавления 27.06.2013
Размер файла 722,0 K

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

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

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 *kCt ) then Cto[i]:=(Ct[1,i]*Ct[2,i])/(kCt *kCt );

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

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

if ((Ct[1,i]*Ct[2,i])>(kCt *kCt ))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 ;

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

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

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]<G) then Vt[i]:=1;

end else begin

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

if G<NPVvar[1,i] then Vt[i]:=0;

if (G>=NPVvar[1,i]) and (G<NPVvar[2,i]) then begin

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<NPVvar[3,i]) then begin

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 ;

if NPVpmin<>0 then Rt[1,ii]:=NPVvar[1,ii]/NPVpmin;

NPVpmax:=NPVpmax-Ip ;

if NPVpmax<>0 then Rt[3,ii]:=NPVvar[3,ii]/NPVpmax;

NPVpav:=NPVpav-Ip ;

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 *kRt *kRt ) then Rto[i]:=(Rt[1,i]*Rt[2,i]*Rt[3,i])/(kRt *kRt );

if ((Rt[1,i]*Rt[2,i]*Rt[3,i])>(kRt *kRt *kRt ))and (Rt[1,i]*Rt[2,i]*Rt[3,i]<=(kRt *kRt *kRt ))then j:=0;

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

if ((Rt[1,i]*Rt[2,i]*Rt[3,i])>(kRt *kRt *kRt ))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 +kCt )/2) then mCt[1,i]:=0;

if (Cto[i]>((kCt +kCt )/2)) and (Cto[i]<kCt ) then mCt[1,i]:=(2*Cto[i]-kCt -kCt )/(kCt -kCt );

if Cto[i]>=kCt then mCt[1,i]:=1;

if (Cto[i]<=((kCt +kCt )/2)) or (Cto[i]>=((kCt +1)/2)) then mCt[2,i]:=0;

if (Cto[i]>((kCt +kCt )/2)) and (Cto[i]<((kCt +kCt )/2)) then mCt[2,i]:=(2*Cto[i]-kCt -kCt )/(kCt -kCt );

if (Cto[i]>=((kCt +kCt )/2)) and (Cto[i]<=((kCt +1)/2)) then mCt[2,i]:=1-((2*Cto[i]-kCt -kCt )/(1-kCt ));

if (Cto[i]<=(kCt /2)) or (Cto[i]>((kCt +kCt )/2)) then mCt[3,i]:=0;

if (Cto[i]>(kCt /2)) and (Cto[i]<((kCt +kCt )/2)) then mCt[3,i]:=(2*Cto[i]-kCt )/(kCt );

if (Cto[i]>=((kCt +kCt )/2)) and (Cto[i]<=((kCt +kCt )/2)) then mCt[3,i]:=1-(2*Cto[i]-kCt -kCt )/(kCt -kCt );

if Cto[i]>=((kCt +kCt )/2) then mCt[4,i]:=0;

if (Cto[i]<((kCt +kCt )/2)) and (Cto[i]>kCt ) then mCt[4,i]:=1-(2*(Cto[i]-kCt )/(kCt -kCt ));

if Cto[i]<=kCt then mCt[4,i]:=1;

//----------------------------------Значения ф. принадлежности для Rt

if Rto[i]<=((kRt +kRt )/2) then mRt[1,i]:=0;

if (Rto[i]>((kRt +kRt )/2)) and (Rto[i]<kRt ) then mRt[1,i]:=(2*Rto[i]-kRt -kRt )/(kRt -kRt );

if Rto[i]>=kRt then mRt[1,i]:=1;

if (Rto[i]<=((kRt +kRt )/2)) or (Rto[i]>=((kRt +1)/2)) then mRt[2,i]:=0;

if (Rto[i]>((kRt +kRt )/2)) and (Rto[i]<((kRt +kRt )/2)) then mRt[2,i]:=(2*Rto[i]-kRt -kRt )/(kRt -kRt );

if (Rto[i]>=((kRt +kRt )/2)) and (Rto[i]<=((kRt +1)/2)) then mRt[2,i]:=1-((2*Rto[i]-kRt -kRt )/(1-kRt ));

if (Rto[i]<=(kRt /2)) or (Rto[i]>=((kRt +kRt )/2)) then mRt[3,i]:=0;

if (Rto[i]>=(kRt /2)) and (Rto[i]<((kRt +kRt )/2)) then mRt[3,i]:=(2*Rto[i]-kRt )/(kRt );

if (Rto[i]>=((kRt +kRt )/2)) and (Rto[i]<((kRt +kRt )/2)) then mRt[3,i]:=1-((2*Rto[i]-kRt -kRt )/(kRt -kRt ));

if Rto[i]>=((kRt +kRt )/2) then mRt[4,i]:=0;

if (Rto[i]<((kRt +kRt )/2)) and (Rto[i]>kRt ) then mRt[4,i]:=1-(2*(Rto[i]-kRt )/(kRt -kRt ));

if Rto[i]<=kRt then mRt[4,i]:=1;

//----------------------------------Значения ф. принадлежности для Vt

if Vt[i]<=((kVt +kVt )/2) then mVt[4,i]:=0;

if (Vt[i]>((kVt +kVt )/2)) and (Vt[i]<kVt ) then mVt[4,i]:=(2*Vt[i]-kVt -kVt )/(kVt -kVt );

if Vt[i]>=kVt then mVt[4,i]:=1;

if (Vt[i]<=((kVt +kVt )/2)) or (Vt[i]>=((kVt +1)/2)) then mVt[3,i]:=0;

if (Vt[i]>((kVt +kVt )/2)) and (Vt[i]<((kVt +kVt )/2)) then mVt[3,i]:=(2*Vt[i]-kVt -kVt )/(kVt -kVt );

if (Vt[i]<((kVt +1)/2)) and (Vt[i]>((kVt +kVt )/2)) then mVt[3,i]:=1-((2*Vt[i]-kVt -kVt )/(1-kVt ));

if (Vt[i]<=(kVt /2)) or (Vt[i]>=((kVt +kVt )/2)) then mVt[2,i]:=0;

if (Vt[i]>(kVt /2)) and (Vt[i]<((kVt +kVt )/2)) then mVt[2,i]:=(2*Vt[i]-kVt )/(kVt );

if (Vt[i]>=((kVt +kVt )/2)) and (Vt[i]<=((kVt +kVt )/2)) then mVt[2,i]:=1-((2*Vt[i]-kVt -kVt )/(kVt -kVt ));

if Vt[i]>=((kVt +kVt )/2) then mVt[1,i]:=0;

if (Vt[i]<((kVt +kVt )/2)) and (Vt[i]>kVt ) then mVt[1,i]:=1-(2*(Vt[i]-kVt )/(kVt -kVt ));

if Vt[i]<=kVt 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]<mCt[i,j] then k:=i;

if mRt[i-1,j]<mRt[i,j] then ii:=i;

if mVt[i-1,j]<mVt[i,j] then iv:=i;

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]<min then min:=mRt[ii,j];

if mCt[k,j]<min then min:=mCt[k,j];

if re=1 then begin

A1:=0;B1:=0;K1:=0;C1:=0;

C2:=(((1-min)*(kre -kre ))+2*kre )/2;

K2:=(kre +kre )/2;

A2:=(-2/(kre -kre ));

B2:=1+((2*kre )/(kre -kre ));

end;

if re=2 then begin

A1:=2/kre ;

B1:=-kre /kre ;

K1:=kre /2;

C1:=((min*kre )+kre )/2;

C2:=(((1-min)*kre )+kre +(min*kre ))/2;

K2:=(kre +kre )/2;

A2:=(-2/(kre -kre ));

B2:=1+((kre +kre )/(kre -kre ));

end;

if re=3 then begin

A1:=2/(kre -kre );

B1:=-(kre +kre )/(kre -kre );

K1:=(kre +kre )/2;

C1:=((min*(kre -kre ))+kre +kre )/2;

C2:=(((1-min)*(1-kre ))+kre +kre )/2;

K2:=(kre +1)/2;

A2:=(-2/(1-kre ));

B2:=1-((kre +kre )/(1-kre ));

end;

if re=4 then begin

A1:=(2/(kre -kre ));

B1:=-(kre +kre )/(kre -kre );

K1:=(kre +kre )/2;

C1:=((min*(kre -kre ))+kre +kre )/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 /2)) or (vr>=((kre +kre )/2)) then mvr2:=0;

if (vr>(kre /2)) and (vr<((kre +kre )/2)) then mvr2:=(2*vr-kre )/(kre );

if (vr>=((kre +kre )/2)) and (vr<=((kre +kre )/2)) then mvr2:=1-((2*vr-kre -kre )/(kre -kre ));

if vr>=((kre +kre )/2) then mvr1:=0;

if (vr<((kre +kre )/2)) and (vr>C2) then mvr1:=1-(2*(vr-kre )/(kre -kre ));

if vr<=C2 then mvr1:=min;

if mvr2>mvr1 then re:=2;

end;

if TR[iv,k,ii]=2 then begin

if (vr<=((kre +kre )/2)) or (vr>=((kre +1)/2)) then mvr3:=0;

if (vr>((kre +kre )/2)) and (vr<((kre +kre )/2)) then mvr3:=(2*vr-kre -kre )/(kre -kre );

if (vr<((kre +1)/2)) and (vr>((kre +kre )/2)) then mvr3:=1-((2*vr-kre -kre )/(1-kre ));

if (vr<=(kre /2)) or (vr>=((kre +kre )/2)) then mvr2:=0;

if (vr>(kre /2)) and (vr<C1) then mvr2:=(2*vr-kre )/(kre );

if (vr>=C1) and (vr<=C2) then mvr2:=min;

if (vr>=C2) and (vr<((kre +kre )/2)) then mvr2:=1-((2*vr-kre -kre )/(kre -kre ));

if vr>=((kre +kre )/2) then mvr1:=0;

if (vr<((kre +kre )/2)) and (vr>kre ) then mvr1:=1-(2*(vr-kre )/(kre -kre ));

if vr<=kre 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 +kre )/2) then mvr4:=0;

if (vr>((kre +kre )/2)) and (vr<kre ) then mvr4:=(2*vr-kre -kre )/(kre -kre );

if vr>=kre then mvr4:=1;

if (vr<=((kre +kre )/2)) or (vr>=((kre +1)/2)) then mvr3:=0;

if (vr>((kre +kre )/2)) and (vr<C1) then mvr3:=(2*vr-kre -kre )/(kre -kre );

if (vr>=C1) and (vr<=C2) then mvr3:=min;

if (vr<((kre +1)/2)) and (Vt[i]>C2) then mvr3:=1-((2*vr-kre -kre )/(1-kre ));

if (vr<=(kre /2)) or (vr>=((kre +kre )/2)) then mvr2:=0;

if (vr>(kre /2)) and (vr<((kre +kre )/2)) then mvr2:=(2*vr-kre )/(kre );

if (vr>=((kre +kre )/2)) and (vr<=((kre +kre )/2)) then mvr2:=1-((2*vr-kre -kre )/(kre -kre ));

if mvr4>mvr3 then re:=4;

if mvr2>mvr3 then re:=2;

end;

if TR[iv,k,ii]=4 then begin

if vr<=((kre +kre )/2) then mvr4:=0;

if (vr>((kre +kre )/2)) and (Vt[i]<C1) then mvr4:=(2*vr-kre -kre )/(kre -kre );

if vr>=C1 then mvr4:=min;

if (vr<=((kre +kre )/2)) or (vr>=((kre +1)/2)) then mvr3:=0;

if (vr>((kre +kre )/2)) and (vr<((kre +kre )/2)) then mvr3:=(2*vr-kre -kre )/(kre -kre );

if (vr<((kre +1)/2)) and (vr>((kre +kre )/2)) then mvr3:=1-((2*vr-kre -kre )/(1-kre ));

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 ,chr ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr ,chr :;

else key:=chr ; 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 ,chr ,chr ,chr ,chr ,chr ,chr ,chr ,

chr ,chr ,chr ,chr ,chr :;

else key:=chr ;

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 ,chr ,chr ,chr ,chr ,chr ,chr ,chr ,

chr ,chr ,chr ,chr ,chr :;

else key:=chr ;

end;

end;

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

begin

Case key of

chr ,chr ,chr ,chr ,chr ,chr ,chr ,chr ,

chr ,chr ,chr ,chr ,chr :;

else key:=chr ;

end;

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

//----------------------------- Ввод значений в массив для рассчета коэф-та ликвидности Rt

try Ir:=StrToFloat(Edit1.Text); Except Ir:=0; Edit1.Text:=IntToStr ; end;

for i:=1 to nRt do begin

try

RSvar[i]:=StrToFloat(StringGrid2.Cells[i-1,1]);

Except

StringGrid2.Cells[i-1,1]:=IntToStr ;

end;

try

Rdvar[i]:=StrToFloat(StringGrid1.Cells[i-1,1]);

Except

StringGrid1.Cells[i-1,1]:=IntToStr ;

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;

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 ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr :;

else key:=chr ;end;

end;

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

begin

Case key of

chr ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr :;

else key:=chr ; end;

end;

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

begin

Case key of

chr ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr :;

else key:=chr ; end;

end;

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

begin

Case key of

chr ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr ,chr :;

else key:=chr ; end;

end;

procedure TForm8.StringGrid6KeyPress(Sender: TObject; var Key: Char);

begin

Case key of

chr ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr :;

else key:=chr ; end;

end;

procedure TForm8.StringGrid7KeyPress(Sender: TObject; var Key: Char);

begin

Case key of

chr ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr :;

else key:=chr ;end;

end;

procedure TForm8.StringGrid8KeyPress(Sender: TObject; var Key: Char);

begin

Case key of

chr ,chr ,chr ,chr ,chr ,chr ,chr , chr ,chr ,chr ,chr :;

else key:=chr ; 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.

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

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

Риск имеет три основных атрибута: случай, вероятность и воздействие.

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

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

Как правило, в управлении рисками ведется вероятностная оценка события в пределах от 0 % - 100 %.

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

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

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

Оценивая риски, менеджеры проектов активно используют инструмент, известный как матрица риска. Матрица риска комбинирует два показателя (вероятность и воздействие) для вычисления важности риска.

Программное обеспечение по управлению рисками генерируют матрицы такого рода.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1 А.С. Шапкин, В.А. Шапкин. Теория риска и моделирование рисковых ситуаций. М., 2005.

2 Абрамов С.И. Инвестирование. - М.: Центр экономики и маркетинга, 2000.

3 Абчук В, А. Экономико-математические методы. -- СПб.: Союз, 1999.

4 Абчук В. А. Предприимчивость и риск. -- СПб.: ИПК РП, 1994.

5 Абчук В. А. Теория риска. -- Л.: Судостроение, 1983.

6 Аиыиин В. М„ Филин С. А. Менеджмент инвестиций и инноваций в малом и венчурном бизнесе: Учеб, пособие. -- М.: Анкил,2003.

7 Алексеев М. Ю. Рынок ценных бумаг, -- М,: Финансы и статистика, 1992,

8 Аллеи Р. Математическая экономика / Пер. с англ. --- М.: Иностранная литература, 1963.

9 Анфилатов В, С, Емельянов А. А., Кукушкин А. А. Системный анализ в управлении: Учеб. пособие / Под ред. А. А. Емельянова. -- М.: Финансы и статистика, 2002.

10 Балабанов И. Т. Риск-менеджмент. -- М.: Финансы и статистика, 1996.

11 Бернсташ П. Против богов: Укрощение риска / Пер. с англ. --М.: ЗАО «Олимп-бизнес», 2000.

12 Виленский В.Л., Лифшиц В.Н., Смоляк С.А. Оценка эффективности инвестиционных проектов. Теория и практика. - М. Дело, 2001.

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

14 Ковалев В. В, Методы оценки инвестиционных проектов. -- М.:

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

16 Корнилова Т. В. Психология риска и принятия решений: Учеб. пособ. для вузов / Т. В. Корнилова. -- М.: Аспект Пресс, 2003.

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

18 Кофман А., Хил Алуха Х. - Введение теории нечетких множеств в управлении предприятиями, Минск, Вышэйшая школа, 1992.

19 Лапуста М. Г., Шаршукова Л. Г. Риски в предпринимательской деятельности. -- М.: ИНФРА-М, 1998.

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

21 Маккримонк К. Р., ВехрунгД. А. Риск: менеджмент неопределенности//ЭКО. -- 1991. --№ 10.

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

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

24 Овчаров А. Риск-менеджмент // Риск. -- 1997. -- № 3--4.

25 Папиряп Г. А. Международные экономические отношения: Экономика туризма. -- М,: Финансы и статистика, 2000.

26 Первозванский А. А., Первозванская Т. И. Финансовый рынок: расчет и Прикладные нечеткие системы: пер. с япон. / К.Асаи, Д.Ватада, С.Иваи и др.; под. ред. Т.Тэрано, К.Асаи, М...


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

  • Сущность инвестиционных рисков и вопросы их классификации по сферам деятельности. Проектный подход к оценке рисков инвестиций. Современный инструментарий оценки проектных рисков. Использование теории нечетких множеств при оценке инвестиционного проекта.

    курсовая работа [358,2 K], добавлен 25.05.2014

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

    курсовая работа [33,0 K], добавлен 11.11.2010

  • Понятие и характеристика основных методик оценки рисков инвестиционного проекта, анализ ее влияния на доходность проекта. Качественная и количественная оценка рисков инвестиционного проекта выведению новой продукции ювелирного завода – золотых цепочек.

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

  • Классификация производственных, инвестиционных рисков и рисков торговой деятельности предприятия. Характеристика статистических методов, применяемых при качественном и количественном анализе рисков. Расчет дисперсии и среднего квадратического отклонения.

    лекция [30,8 K], добавлен 13.02.2011

  • Понятие, роль и экономическое содержание рисков в финансово-хозяйственной деятельности предприятия. Классификация и методы оценки коммерческих рисков, система управления рисками. Оценка рисков в деятельности предприятия ОАО "Галантус" и пути их снижения.

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

  • Разделение рисков инвестиционного проекта по характеру учета, последствиям; времени, факторам и сфере возникновения. Их классификация, связанная с производственной деятельностью. Методы качественного и количественного анализа, применяемые для их оценки.

    контрольная работа [21,5 K], добавлен 16.10.2014

  • Содержание экономического риска. Общее понятие риска. Классификация экономических рисков, основные методы их снижения. Аналитическая, защитная, регулятивная и инновационная функции риска. Основные формы диверсификации. Теория классификации рисков.

    курсовая работа [224,5 K], добавлен 24.06.2015

  • Сущность предпринимательского риска и его классификация. Объективные и субъективные причины предпринимательских рисков. Определение и функции предпринимательского риска. Классификация предпринимательских рисков. Методы смягчения риска.

    курсовая работа [162,2 K], добавлен 03.05.2003

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

    курсовая работа [268,0 K], добавлен 31.05.2015

  • Понятие инвестиционного риска, его виды и экономическая сущность их неопределенности. Методы оценки инвестиционных рисков. Анализ хозяйственной деятельности ОАО "Лукойл" и оценка его финансового состояния. Управление финансовыми рисками на ОАО "Лукойл".

    курсовая работа [737,9 K], добавлен 21.10.2014

  • Теоретические положения о предпринимательском риске в экономической науке, методы оценки риска применительно к производственным ситуациям и видам предпринимательской деятельности. Анализ производственных, коммерческих и финансовых (кредитных) рисков.

    реферат [57,9 K], добавлен 21.01.2012

  • Понятие риск–менеджмента в предпринимательской деятельности. Экономическая природа рисков внешнеэкономической деятельности в Украине, их классификация и анализ. Методика оценки рисков внешнеэкономического контракта и производственной деятельности.

    дипломная работа [479,1 K], добавлен 10.12.2009

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

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

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

    курсовая работа [265,7 K], добавлен 16.06.2011

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

    курсовая работа [62,2 K], добавлен 22.03.2016

  • Характеристика рыночных рисков как вероятности возникновения финансовых потерь по балансовым и забалансовым операциям банка. Основные способы оценки рыночных рисков. Возникновение процентных рисков. Расчет фондового, процентного и валютного рисков.

    курсовая работа [77,4 K], добавлен 15.03.2011

  • Основные приёмы финансового анализа и их классификация на традиционные и математические. Риски в предпринимательской деятельности. Показатели риска и методы его оценки. Алгоритм комплексной оценки предпринимательских рисков, средства их разрешения.

    контрольная работа [49,6 K], добавлен 13.03.2010

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

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

  • Источники и причины хозяйственных рисков, их значение в деятельности предприятий. Виды плановых решений. Методология и инструменты планирования рисков. Потери от риска и их виды. Технические, правовые, организационно-экономические методы снижения рисков.

    курсовая работа [748,7 K], добавлен 12.01.2012

  • Средства разрешения рисков: избегание риска; удержание; снижение степени риска. Принципы разрешения риска. Сущность понятия "хеджирование". Хеджирование финансовых рисков. Методы снижения банковского риска. Страхование ценных бумаг и операций с ними.

    контрольная работа [25,1 K], добавлен 10.05.2010

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