Исследование и компьютерная реализация экономико-математической модели зависимости поступлений в бюд...

Курсовой проект - Разное

Другие курсовые по предмету Разное

abeledEdit;

lbedMinRent: TLabeledEdit;

lbedStepRent: TLabeledEdit;

BitBtn1: TBitBtn;

lbedMinPeriod: TLabeledEdit;

Chart: TChart;

lbedMaxNalog: TLabeledEdit;

lbedStepNalog: TLabeledEdit;

lbedMaxPeriod: TLabeledEdit;

lbedStepPeriod: TLabeledEdit;

Timer1: TTimer;

procedure BitBtn1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

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

private

MaxP,MinP,Period,StepP:Integer;

function Postupleniya(Nalog,Rentab,Capital:Double;years:integer):Double;

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.Postupleniya(Nalog, Rentab, Capital: Double;

years: integer): Double;

var

Pribil,PribilVNalog,OstPribili,Kapital:Double;

begin

Result:=0.0;

while years>0 do

begin

dec(years);

Pribil:=Capital*Rentab/100;

PribilVNalog:=Pribil*Nalog/100;

OstPribili:=Pribil-PribilVNalog;

Capital:=Capital+OstPribili;

Result:=Result+PribilVNalog;

end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

MinNalog,MaxNalog,StepNalog,Rent,DohodVBudget,

StavkaNaloga,NachKapital,MinRentab,

MaxRentab,StepRent:Double;

i:integer;

begin

for i:=0 to ComponentCount-1 do

if Components[i] is TLabeledEdit then

if TLabeledEdit(Components[i]).Text='' then

begin

Timer1.Enabled:=false;

Exit;

end;

MinNalog:=StrToFloat(lbedMinNalog.Text);

MaxNalog:=StrToFloat(lbedMaxNalog.Text);

StepNalog:=StrToFloat(lbedStepNalog.Text);

NachKapital:=StrToFloat(lbedStartCapital.Text);

MaxRentab:=StrToFloat(lbedMaxRent.Text);

MinRentab:=StrToFloat(lbedMinRent.Text);

StepRent:=StrToFloat(lbedStepRent.Text);

MinP:=StrToInt(lbedMinPeriod.Text);

MaxP:=StrToInt(lbedMaxPeriod.Text);

StepP:=StrToInt(lbedStepPeriod.Text);

Timer1.Enabled:=true;

 

 

with Chart do

begin

SeriesList.Clear;

Legend.LegendStyle:=lsSeries;

Title.Text.Strings[0]:=IntToStr(Period)+' лет';

Rent:=MinRentab;

while Rent<=MaxRentab do

begin

AddSeries(TLineSeries.Create(Self));

Series[SeriesCount-1].Title:=FloatToStr(Rent)+'%';

StavkaNaloga:=MinNalog;

while StavkaNaloga<=MaxNalog do

begin

DohodVBudget:=Postupleniya(StavkaNaloga,Rent,NachKapital,Period);

Series[SeriesCount-1].AddXY(StavkaNaloga,DohodVBudget,'');

StavkaNaloga:=StavkaNaloga+StepNalog;

end;

Rent:=Rent+StepRent;

end;

end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if Period<=MaxP then

begin

Period:=Period+StepP;

BitBtn1Click(Self);

end

else

Period:=MinP;

end;

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

begin

if key=#13 then BitBtn1Click(Self);

if not(Key in ['0'..'9',#8,','])then Key:=#0;

end;

end.