Визначення сучасної вартості потоку платежів для складної процентної ставки

Автор работы: Пользователь скрыл имя, 15 Марта 2011 в 15:01, курсовая работа

Описание работы

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


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

Файлы: 1 файл

отчет к курсовой.doc

— 921.00 Кб (Скачать файл)

     Следовательно, это  программное обеспечение  является полезным и при желании  его можно  усовершенствовать. На его основе можно  проводить анализ инвестиционных проектов для разных процентных ставок (сложной и простой), осуществлять полную оценку инвестиционных проектов, находить и анализировать показатели экономической эффективности и многое другое. 
ЛИТЕРАТУРА 

  1. http://solidbase.karelia.ru/edu/meth_calc/
  2. Каханер Д., Моулер К., Нэш С. Численные методы и программное обеспечение (пер. с англ.). М.: Мир, 2001, 575 c. ISBN 5-03-003392-0.
  3. Самарский А. А., Гулин А. В. Численные методы: Учеб. пособие для вузов. — М.: Наука. Гл. ред. физ-мат. лит., 1989. — 432 с. ISBN 5-02-013996-3.
  4. Пискунов Н. С. Дифференциальное и интегральное исчисления для вузов. — 13-е изд. — М.: Наука. Гл. ред. физ-мат. лит., 1985. — 432 с.

 

    ПРИЛОЖЕНИЕ 

    Текст программы 

    unit spw2; 

    interface 

    uses

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

      TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Buttons, ComCtrls, ShellApi,Math,

      Grids; 

    type

      TForm1 = class(TForm)

        BitBtn1: TBitBtn;

        Button4: TButton;

        Button1: TButton;

        Label5: TLabel;

        Button2: TButton;

        StringGrid1: TStringGrid;

        Edit3: TEdit;

        Edit7: TEdit;

        Edit8: TEdit;

        Label13: TLabel;

        Label14: TLabel;

        Button3: TButton;

        Label3: TLabel;

        Label4: TLabel;

        Edit4: TEdit;

        Label6: TLabel;

        Label7: TLabel;

        Button5: TButton;

        Chart1: TChart;

        Series1: TLineSeries;

        Edit2: TEdit;

        procedure BitBtn1Click(Sender: TObject);

        procedure Button1Click(Sender: TObject);

        procedure Button2Click(Sender: TObject);

        procedure Button3Click(Sender: TObject);

        procedure Button4Click(Sender: TObject);

        procedure Button5Click(Sender: TObject); 
     

      private

        { Private declarations }

      public

        { Public declarations }

      end; 

    var

      Form1: TForm1;

       Mas: Array[0..255] of double; 

    implementation 

    uses Unit2, Unit3; 

    {$R *.DFM} 
     

    procedure TForm1.BitBtn1Click(Sender: TObject);

    begin

       close;

    end; 

    procedure TForm1.Button5Click(Sender: TObject);

    begin

    Form2.Show;

    end; 

    procedure TForm1.Button3Click(Sender: TObject);

    var i,b,n             :integer;

        x,a,h                 :double;

    begin

    a:=0; {начало интервала}

    b:=StrToInt(Form1.Edit3.Text);  {конец интервала}

    n:=StrToInt(Form1.Edit4.Text);  {количество разбиений}

    h:=(b-a)/(n-1);

    Form1.StringGrid1.ColCount:=n;

    for i:=0 to n-1 do    begin

    Form1.StringGrid1.Cells[i,0]:=FloatToStr(a);

    a:=a+h;   end;

    end; 
     

    procedure TForm1.Button2Click(Sender: TObject);

    var   i,b,n             :integer;

        x,a,h, stavka,mn, integral   :double;

        mas1: array[0..255] of real; 

    begin

    a:=0; {начало интервала}

    b:=StrToInt(Form1.Edit3.Text);  {конец интервала}

    n:=StrToInt(Form1.Edit4.Text);  {количество разбиений}

    h:=(b-a)/(n-1);

    for i:=0 to n-1 do    begin

    Form1.StringGrid1.Cells[i,0]:=FloatToStr(a);

    a:=a+h;   end;

    Stavka:=100*ln(1+StrToInt(Form1.Edit2.TEXT)/100);

    Form1.Edit7.Text:=FloatToStr(Stavka);

    mn:=exp(-stavka*h); 

    for i:=0 to n-1 do begin

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

    end; 

    for i:=0 to n-1 do begin

    mas1[i]:=mn*StrToFloat(StringGrid1.Cells[i,1]);

    end;

    Integral:=0; 

    For i:=0 to n-1 do begin 

      if (i=0)or(i=n-1) then

      begin

      Integral:=Integral+mas1[i];

      end; 

      if i=1 then

      begin

      Integral:=Integral+4*mas1[i];

      end 

      else

      begin

      Integral:=Integral+2*mas1[i];

      end; 

    end; 

    Integral:=((b)/6*(n-1))*Integral;

    Edit8.Text:=FloatToStr(Integral);

    end; 

    procedure TForm1.Button1Click(Sender: TObject);

    var   i,b,n             :integer;

        x,a,h, stavka,mn, integral   :double;

        mas1: array[0..255] of real; 

    begin

    a:=0; {начало интервала}

    b:=StrToInt(Form1.Edit3.Text);  {конец интервала}

    n:=StrToInt(Form1.Edit4.Text);  {количество разбиений}

    h:=(b-a)/(n-1);

    for i:=0 to n-1 do    begin

    Form1.StringGrid1.Cells[i,0]:=FloatToStr(a);

    a:=a+h;   end;

    Stavka:=100*ln(1+StrToInt(Form1.Edit2.TEXT)/100);

    Form1.Edit7.Text:=FloatToStr(Stavka);

    mn:=exp(-stavka*h); 

    for i:=0 to n-1 do begin

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

    end; 

    for i:=0 to n-1 do begin

    mas1[i]:=mn*StrToFloat(StringGrid1.Cells[i,1]);

    end;

    Integral:=0; 

    For i:=0 to n-1 do begin

    if (i=0)or(i=n-1) then

    begin

    Integral:=Integral+mas1[i];

    end

    else

    begin

    Integral:=Integral+2*mas1[i];

    end;

    end; 

    Integral:=((b)/2*(n-1))*Integral;

    Edit8.Text:=FloatToStr(Integral);

    end; 
     

    procedure TForm1.Button4Click(Sender: TObject);

    var n,i,b: integer;

    h,a: real;

    begin

    Series1.Clear;

    a:=0; {начало интервала}

    b:=StrToInt(Form1.Edit3.Text);

    n:=StrToInt(Form1.Edit4.Text);

    h:=(b-a)/(n-1);

    for i:=0 to n-1  do begin

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

    Series1.AddXY(a,mas[i]);

    a:=a+h;

    end;

    end; 

    end.

Информация о работе Визначення сучасної вартості потоку платежів для складної процентної ставки