. , , ,

,,,

- — -

1.  

1.1.    

1.2.    

1.3.     .

1.4.    

2.  

2.1.    

2.2.    

2.3.    

2.4.    

2.4.1. Delphi

2.5.     堠

.


, , , , , , , , . , . , . , , "" . , , .

.

, 80- . , . . , . , , . .

, , , . . .

, .

1.

1.1.

, , . , , , . , .

, , .

, , , .

, () (), , , . , , , , , , , , .

:

          ,

          (),

          ,

          , ,

          , , .

:

v   , .

v   : - , , , , .. . . ().

, , . , .

, .

, , , . .

. 10-20% . .

, , .

, .

:

v   , ;

v   ,

. , : , .

, , .

, , :

- ( );

- ( );

- ( ).

. , . , , ().

: , . , . . " " .

. , , . , , , . , , , , . ., , , . , , .

1.2.

, , : , (), , , .

1. , : , .

2. () . " ".

. - , , , , .

3. . - , . . , .

4. . ( , ..).

5. . : . , , , .

. . , , , , ..

1.3. .

. , , 23-24% , - 30%. , . , , , , , 55-60% .

, , , . .

( ), , , , . . , , , .

- . , ( ) . , . - . . .

1998 . - . ( ) .

, , , . , , , . , , , .

, , :

v   ;

v   , ;

v   .

.

, :

Ø ,

Ø ,

Ø ,

Ø ,

Ø ,

Ø .

1990- ., , . , .

1.4.

. . : , .

(. 1).

. 1.

0 , . 0 - . . , , , 35-40% , - .

, , . , .

, . . , . , , , , - 75% , . , 1986 .

, (, ) , : , .

, . ,

-, . , , . , , 0, , T, , , .

-, , , , . , , , ? : , .

-, , , - . : , . .

. ,

2001 , 13- , , 30%. , 24%, , " " , .

, , , . (Laffer Curve) - .

, , , . , , .

, .


2.

2.1.

. , , - . , , .

, , .

, .

2.2.

. , , . . : , .

2.3.

(1) (2) .

(1)

, 堠 (2)

BD(t) t, ;

t - , .

tf - (final)

tb - (begin) ;

PRFt - (profit), t, ./;

TXRT - (tax rate).

(3) (4) :

(3)

(4)

t ( t) (5)

(5)

2.4.

Delphi.


2.4.1. Delphi

, .

, . : = * .

. .

= + , .

.

; . , .. .

, . .

t .

( 10%) ( 20%), . .

(t=30 ) 100 .. (. . 2).

. 2.

, , .

2.6.    

. , , , , , , 30 %.

: , . . , , . , , , .

, 30% .

- . : , - , . .

, , . , . .

, , . , .

, , , , , , . , , . , , , : - - - .

. , (35%), 30% ( ) 5 .

7 , ( ) 400 ./. , . 10 ( 8 ) .

. , , 12 . 9223, 967 .. , .

, , , , , , . , .


, , , , , .

, , , , , , 21 %.

: , . . , .

, , . , .

, ( ""), . , .

. , , :

à à à


 

1.         .. Windows: . .: , 2001. 400 .

2.         .., .. .  .: -, 2002. 304 .

3.         : . / . . . . 4- , . .: , 1998. 544 .

4.         / . .. , .. , 3- . : , 2001. 544 .

5.         : / . . .. . .: , 2001. 734 .

6.         .. : . .: , 1997. 568 .

7.         .. . . 2- ., . . .: , 2000. 560 .

8.         .. . : . / .. , .. , .. ; . .. . .: , 2002. 368 .

9.         ., . . . .: , 2001. 624 .

10.      .., .., .. : . .: .. , ѻ, 1997. 368 .


1.

unit Unit1;

interface

uses

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

Dialogs, TeeProcs, TeEngine, Chart, StdCtrls, Buttons, ExtCtrls,Series;

type

TForm1 = class(TForm)

Panel1: TPanel;

lbedMinNalog: TLabeledEdit;

lbedStartCapital: TLabeledEdit;

lbedMaxRent: TLabeledEdit;

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.

1. 1.1. 1.2. 1.3. . 1.4.

 

 

 

! , , , .
. , :