//----------------------------------Ðàññ÷åò
îáùåãî ðèñêà ïðîåêòà 
     
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[2]-kre[1]))+2*kre[1])/2; 
        
K2:=(kre[1]+kre[2])/2; 
        
A2:=(-2/(kre[2]-kre[1])); 
        
B2:=1+((2*kre[1])/(kre[2]-kre[1])); 
     
end; 
     
if re=2 then begin 
        
A1:=2/kre[2]; 
        
B1:=-kre[1]/kre[2]; 
        
K1:=kre[1]/2; 
        
C1:=((min*kre[2])+kre[1])/2; 
        
C2:=(((1-min)*kre[3])+kre[2]+(min*kre[1]))/2; 
        
K2:=(kre[2]+kre[3])/2; 
        
A2:=(-2/(kre[3]-kre[1])); 
        
B2:=1+((kre[1]+kre[2])/(kre[3]-kre[1])); 
     
end; 
     
if re=3 then begin 
        
A1:=2/(kre[3]-kre[1]); 
        
B1:=-(kre[1]+kre[2])/(kre[3]-kre[1]); 
        
K1:=(kre[1]+kre[2])/2; 
        
C1:=((min*(kre[3]-kre[1]))+kre[1]+kre[2])/2; 
        
C2:=(((1-min)*(1-kre[2]))+kre[3]+kre[2])/2; 
        
K2:=(kre[3]+1)/2; 
        
A2:=(-2/(1-kre[2])); 
        
B2:=1-((kre[2]+kre[3])/(1-kre[2])); 
     
end; 
     
if re=4 then begin 
        
A1:=(2/(kre[3]-kre[2])); 
        
B1:=-(kre[2]+kre[3])/(kre[3]-kre[2]); 
        
K1:=(kre[2]+kre[3])/2; 
        
C1:=((min*(kre[3]-kre[2]))+kre[2]+kre[3])/2; 
        
C2:=1;K2:=0;A2:=0;B2:=0; 
     
end; 
     
vrch:=(A1*((C1*C1*C1)-(K1*K1*K1))/3); 
     
vrch:=vrch+((B1*((C1*C1)-(K1*K1)))/2); 
     
vrch:=vrch+(min*((C2*C2)-(C1*C1))/2); 
     
vrch:=vrch+(A2*(((K2*K2*K2)-(C2*C2*C2)))/3)+(B2*((K2*K2)-(C2*C2))/2); 
     
vrz:=(A1*((C1*C1)-(K1*K1))/2); 
     
vrz:=vrz+(B1*(C1-K1)); 
     
vrz:=vrz+(min*(C2-C1)); 
     
vrz:=vrz+(A2*((K2*K2)-(C2*C2))/2)+(B2*(K2-C2)); 
  
   vr:=vrch/vrz; 
//---------------------- 
    
if TR[iv,k,ii]=1 then begin 
      
if (vr<=(kre[1]/2)) or (vr>=((kre[2]+kre[3])/2)) then mvr2:=0; 
      
if (vr>(kre[1]/2)) and (vr<((kre[1]+kre[2])/2)) then
mvr2:=(2*vr-kre[1])/(kre[2]); 
      
if (vr>=((kre[1]+kre[2])/2)) and (vr<=((kre[2]+kre[3])/2)) then
mvr2:=1-((2*vr-kre[1]-kre[2])/(kre[3]-kre[1])); 
 
      
if vr>=((kre[1]+kre[2])/2) then mvr1:=0; 
      
if (vr<((kre[1]+kre[2])/2)) and (vr>C2) then
mvr1:=1-(2*(vr-kre[1])/(kre[2]-kre[1])); 
      
if vr<=C2 then mvr1:=min; 
      
if mvr2>mvr1 then re:=2; 
    
end; 
    
if TR[iv,k,ii]=2 then begin 
      
if (vr<=((kre[1]+kre[2])/2)) or (vr>=((kre[3]+1)/2)) then mvr3:=0; 
      
if (vr>((kre[1]+kre[2])/2)) and (vr<((kre[2]+kre[3])/2)) then
mvr3:=(2*vr-kre[1]-kre[2])/(kre[3]-kre[1]); 
      
if (vr<((kre[3]+1)/2)) and (vr>((kre[2]+kre[3])/2)) then
mvr3:=1-((2*vr-kre[2]-kre[3])/(1-kre[2])); 
 
      
if (vr<=(kre[1]/2)) or (vr>=((kre[2]+kre[3])/2)) then mvr2:=0; 
      
if (vr>(kre[1]/2)) and (vr<C1) then mvr2:=(2*vr-kre[1])/(kre[2]); 
      
if (vr>=C1) and (vr<=C2) then mvr2:=min; 
      
if (vr>=C2) and (vr<((kre[2]+kre[3])/2)) then
mvr2:=1-((2*vr-kre[1]-kre[2])/(kre[3]-kre[1])); 
 
      
if vr>=((kre[1]+kre[2])/2) then mvr1:=0; 
      
if (vr<((kre[1]+kre[2])/2)) and (vr>kre[1]) then
mvr1:=1-(2*(vr-kre[1])/(kre[2]-kre[1])); 
      
if vr<=kre[1] then mvr1:=1; 
      
if mvr1>mvr2 then re:=1; 
      
if mvr3>mvr2 then re:=3; 
    
end; 
    
if TR[iv,k,ii]=3 then begin 
      
if vr<=((kre[2]+kre[3])/2) then mvr4:=0; 
      
if (vr>((kre[2]+kre[3])/2)) and (vr<kre[3]) then
mvr4:=(2*vr-kre[2]-kre[3])/(kre[3]-kre[2]); 
      
if vr>=kre[3] then mvr4:=1; 
 
      
if (vr<=((kre[1]+kre[2])/2)) or (vr>=((kre[3]+1)/2)) then mvr3:=0; 
      
if (vr>((kre[1]+kre[2])/2)) and (vr<C1) then mvr3:=(2*vr-kre[1]-kre[2])/(kre[3]-kre[1]); 
      
if (vr>=C1) and (vr<=C2) then mvr3:=min; 
      
if (vr<((kre[3]+1)/2)) and (Vt[i]>C2) then
mvr3:=1-((2*vr-kre[2]-kre[3])/(1-kre[2])); 
 
      
if (vr<=(kre[1]/2)) or (vr>=((kre[2]+kre[3])/2)) then mvr2:=0; 
  
    if (vr>(kre[1]/2)) and (vr<((kre[1]+kre[2])/2)) then
mvr2:=(2*vr-kre[1])/(kre[2]); 
      
if (vr>=((kre[1]+kre[2])/2)) and (vr<=((kre[2]+kre[3])/2)) then
mvr2:=1-((2*vr-kre[1]-kre[2])/(kre[3]-kre[1])); 
      
if mvr4>mvr3 then re:=4; 
      
if mvr2>mvr3 then re:=2; 
    
end; 
    
if TR[iv,k,ii]=4 then begin 
      
if vr<=((kre[2]+kre[3])/2) then mvr4:=0; 
      
if (vr>((kre[2]+kre[3])/2)) and (Vt[i]<C1) then
mvr4:=(2*vr-kre[2]-kre[3])/(kre[3]-kre[2]); 
      
if vr>=C1 then mvr4:=min; 
 
      
if (vr<=((kre[1]+kre[2])/2)) or (vr>=((kre[3]+1)/2)) then mvr3:=0; 
      
if (vr>((kre[1]+kre[2])/2)) and (vr<((kre[2]+kre[3])/2)) then
mvr3:=(2*vr-kre[1]-kre[2])/(kre[3]-kre[1]); 
      
if (vr<((kre[3]+1)/2)) and (vr>((kre[2]+kre[3])/2)) then
mvr3:=1-((2*vr-kre[2]-kre[3])/(1-kre[2])); 
      
if mvr3>mvr4 then re:=3; 
    
end; 
//--------------------- 
     
if re=1 then begin 
                    
Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+'-ìèíèìàëüíûé'; 
                    
Edit4.Text:='ìèíèìàëüíûé'; 
                  
end; 
     
if re=2 then begin 
                    
Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+'-ïîâûøåííûé'; 
                    
Edit4.Text:='ïîâûøåííûé'; 
                  
end; 
     
if re=3 then begin 
                
    Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+'-êðèòè÷åñêèé'; 
                    
Edit4.Text:='êðèòè÷åñêèé'; 
                  
end; 
     
if re=4 then begin 
                    
Form3.StringGrid2.Cells[4,j]:=FloatToStrF(vr,ffFixed,9,2)+'-íåäîïóñòèìûé'; 
                    
Edit4.Text:='íåäîïóñòèìûé'; 
                  
end; 
  
end; 
  
Edit3.Text:=FloatToStrF(vr,ffFixed,9,2); 
 end; 
 
procedure
TForm1.N7Click(Sender: TObject); 
begin 
  
Form2.Show; 
end; 
 
procedure
TForm1.N3Click(Sender: TObject); 
Var 
   
Myfile : Textfile; 
   
Date : String; 
begin 
   
If (saveDialog1.Execute) then begin 
              
AssignFile(Myfile,Savedialog1.FileName); 
              
Try Rewrite(myFile); 
              
Except 
                  
Showmessage('Îøèáêà ïðè ÷òåíèè ôàéëà!'); Exit; 
              
end; 
              
Date:=IntToStr(SpinEdit1.Value);WriteLn(MyFile,Date); 
              
Date:=Edit1.Text;WriteLn(MyFile,Date); 
              
Date:=Edit2.Text;WriteLn(MyFile,Date); 
              
For i:=0 to n-1 do begin 
                  
Date:=StringGrid1.Cells[i,1]; 
                  
WriteLn(Myfile,Date); 
              
end; 
              
For i:=0 to n-1 do begin 
                  
Date:=StringGrid2.Cells[i,1]; 
                  
WriteLn(Myfile,Date); 
              
End; 
              
For i:=0 to n-1 do begin 
                  
Date:=StringGrid3.Cells[i,1]; 
                  
WriteLn(Myfile,Date); 
              
End; 
              
Date:=IntToStr(StringGrid4.ColCount);WriteLn(Myfile,Date); 
              
For i:=0 to StringGrid4.ColCount-1 do begin 
                  
Date:=StringGrid4.Cells[i,1]; 
                  
WriteLn(Myfile,Date); 
              
End; 
              
With Form2 do begin 
                   
Date:=IntToStr(SpinEdit1.Value);WriteLn(Myfile,Date); 
    
               Date:=Edit1.Text;WriteLn(Myfile,Date); 
                   
For i:=0 to nRt-1 do begin 
                       
Date:=StringGrid1.Cells[i,1]; 
                       
WriteLn(Myfile,Date); 
                   
end; 
               
    For i:=0 to nRt-1 do begin 
                       
Date:=StringGrid2.Cells[i,1]; 
                       
WriteLn(Myfile,Date); 
                   
end; 
              
end; 
    
Closefile(myFile); 
  
end 
 
else Begin Showmessage('Îøèáêà!');
Exit;end; 
end; 
 
procedure
TForm1.N4Click(Sender: TObject); 
Var 
    
Myfile : Textfile; 
    
Date : String; 
begin 
    
If (OpenDialog1.Execute)  then begin 
                 
AssignFile(Myfile,Opendialog1.FileName); 
                 
Try Reset(myFile); 
                
 Except 
                     
Showmessage('Îøèáêà ïðè ÷òåíèè ôàéëà!'); Exit; 
                 
end; 
                 
ReadLn(MyFile,Date);SpinEdit1.Value:=StrToInt(Date);n:=StrToInt(Date); 
                 
ReadLn(MyFile,Date);Edit1.Text:=Date; 
          
       ReadLn(MyFile,Date);Edit2.Text:=Date; 
                 
For i:=0 to n-1 do begin 
                     
ReadLn(MyFile,Date); 
                     
StringGrid1.Cells[i,1]:=Date; 
                 
end; 
                 
For i:=0 to n-1 do begin 
                     
ReadLn(MyFile,Date); 
                     
StringGrid2.Cells[i,1]:=Date; 
                 
End; 
                 
For i:=0 to n-1 do begin 
                     
ReadLn(MyFile,Date); 
                     
StringGrid3.Cells[i,1]:=Date; 
                 
End; 
                 
ReadLn(MyFile,Date);StringGrid4.ColCount:=StrToInt(Date); 
                 
For i:=0 to StringGrid4.ColCount-1 do begin 
                     
ReadLn(MyFile,Date); 
                     
StringGrid4.Cells[i,1]:=Date; 
                 
End; 
                 
With Form2 do begin 
                    
ReadLn(MyFile,Date);SpinEdit1.Value:=StrToInt(Date); 
                    
nRt:=StrToInt(Date);StringGrid1.ColCount:=nRt;StringGrid2.ColCount:=nRt; 
                    
ReadLn(MyFile,Date);Edit1.Text:=Date; 
                    
For i:=0 to nRt-1 do begin 
                       
ReadLn(MyFile,Date); 
                       
StringGrid1.Cells[i,1]:=Date; 
                    
end; 
                    
For i:=0 to nRt-1 do begin 
  
                     ReadLn(MyFile,Date); 
                       
StringGrid2.Cells[i,1]:=Date; 
                    
end; 
                 
end; 
              
Closefile(myFile); 
              
if StringGrid4.ColCount=1 then CheckBox1.Checked:=true; 
 
end 
 
else Begin Showmessage('Ôàéë íå íàéäåí!');
Exit;end; 
end; 
 
procedure
TForm1.N6Click(Sender: TObject); 
begin 
 
Form4.Show; 
end; 
 
procedure
TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); 
begin 
  
Case key of 
     
chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54),
chr(55),chr(56),chr(57),chr(44),chr(8):; 
  
else key:=chr(0); end; 
end; 
 
procedure
TForm1.N5Click(Sender: TObject); 
begin 
 Form5.show; 
end; 
procedure
TForm1.N9Click(Sender: TObject); 
begin 
  
Form6.show; 
end; 
 
procedure
TForm1.Button1Click(Sender: TObject); 
begin 
Form3.Show; 
end; 
end. 
 
unit
Rtmodul; 
 
interface 
 
uses 
 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, Spin; 
 
type 
 
TForm2 = class(TForm) 
   
GroupBox1: TGroupBox; 
   
Label1: TLabel; 
   
SpinEdit1: TSpinEdit; 
   
Label2: TLabel; 
   
Edit1: TEdit; 
   
GroupBox2: TGroupBox; 
   
StringGrid1: TStringGrid; 
   
GroupBox3: TGroupBox; 
   
StringGrid2: TStringGrid; 
   
Panel1: TPanel; 
   
BitBtn1: TBitBtn; 
   
BitBtn2: TBitBtn; 
   
procedure SpinEdit1Change(Sender: TObject); 
   
procedure Edit1KeyPress(Sender: TObject; var Key: Char); 
   
procedure FormCreate(Sender: TObject); 
   
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char); 
   
procedure StringGrid2KeyPress(Sender: TObject; var Key: Char); 
   
procedure BitBtn1Click(Sender: TObject); 
   
procedure BitBtn2Click(Sender: TObject); 
 
private 
   
{ Private declarations } 
 
public 
   
{ Public declarations } 
 
end; 
 
var 
 
Form2: TForm2; 
 
Rtkey : boolean; 
 
i,j,ii : integer; 
 
NPVpmin,NPVpmax,NPVpav,smin,smax : real;{ïðîãíîçíîå çíà÷åíèå NPV äëÿ èíòåðâàëà} 
implementation 
 
uses
datamodul; 
 
{$R
*.dfm} 
 
procedure
TForm2.SpinEdit1Change(Sender: TObject); 
begin 
  
nRt:=SpinEdit1.Value; 
  
StringGrid1.ColCount:=nRt; 
  
StringGrid2.ColCount:=nRt; 
  
for i:=1 to nRt do begin 
      
StringGrid1.Cells[i-1,0]:=IntToStr(i); 
      
StringGrid2.Cells[i-1,0]:=IntToStr(i); 
  
end; 
end; 
 
procedure
TForm2.Edit1KeyPress(Sender: TObject; var Key: Char); 
begin 
 
Case key of 
     
chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), 
     
chr(55),chr(56),chr(57),chr(44),chr(8):; 
  
else key:=chr(0); 
  
end; 
end; 
 
procedure
TForm2.FormCreate(Sender: TObject); 
begin 
  
nRt:=n; 
  
StringGrid1.ColCount:=nRt; 
  
StringGrid2.ColCount:=nRt; 
  
for j:=0 to nRt-1 do begin 
      
StringGrid1.Cells[j,0]:=IntToStr(j+1); 
      
StringGrid2.Cells[j,0]:=IntToStr(j+1); 
  
end; 
  
For i:=1 to n do begin 
      
RSvar[i]:=0; 
      
Rdvar[i]:=0; 
  
end; 
end; 
 
procedure
TForm2.StringGrid1KeyPress(Sender: TObject; var Key: Char); 
begin 
  
Case key of 
     
chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), 
     
chr(55),chr(56),chr(57),chr(44),chr(8):; 
  
else key:=chr(0); 
  
end; 
end; 
 
procedure
TForm2.StringGrid2KeyPress(Sender: TObject; var Key: Char); 
begin 
  
Case key of 
     
chr(45),chr(48),chr(49),chr(50),chr(51),chr(52),chr(53),chr(54), 
     
chr(55),chr(56),chr(57),chr(44),chr(8):; 
  
else key:=chr(0); 
  
end; 
end; 
 
procedure
TForm2.BitBtn1Click(Sender: TObject); 
begin 
//-----------------------------
Ââîä çíà÷åíèé â ìàññèâ  äëÿ ðàññ÷åòà êîýô-òà ëèêâèäíîñòè Rt 
 
   
try
Ir:=StrToFloat(Edit1.Text); Except Ir:=0; Edit1.Text:=IntToStr(0); end; 
 
   
for i:=1 to nRt do begin 
      
try 
        
RSvar[i]:=StrToFloat(StringGrid2.Cells[i-1,1]); 
      
Except 
        
StringGrid2.Cells[i-1,1]:=IntToStr(0); 
      
end; 
      
try 
        
Rdvar[i]:=StrToFloat(StringGrid1.Cells[i-1,1]); 
      
Except 
        
StringGrid1.Cells[i-1,1]:=IntToStr(0); 
      
end; 
   
end; 
   
Rtkey:=true; 
   
Form2.Hide; 
   
Form1.Show; 
end; 
 
procedure
TForm2.BitBtn2Click(Sender: TObject); 
begin 
 
nRt:=n; 
 
Rtkey:=false; 
 
Form2.Close; 
end; 
 
end. 
  
 
unit
Formirmodul; 
 
interface 
 
uses 
 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 
Dialogs, Grids, StdCtrls, Menus; 
 
type 
 
TForm4 = class(TForm) 
   
MainMenu1: TMainMenu; 
   
N1: TMenuItem; 
   
N2: TMenuItem; 
   
N3: TMenuItem; 
   
N4: TMenuItem; 
   
N5: TMenuItem; 
   
N6: TMenuItem; 
   
N7: TMenuItem; 
   
GroupBox1: TGroupBox; 
   
Label1: TLabel; 
   
StringGrid1: TStringGrid; 
   
GroupBox2: TGroupBox; 
   
StringGrid2: TStringGrid; 
   
SaveDialog1: TSaveDialog; 
   
OpenDialog1: TOpenDialog; 
   
procedure FormCreate(Sender: TObject); 
   
procedure N5Click(Sender: TObject); 
Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 
   
 |