ΠΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ ΠΠ°ΡΡΡΠ°, ΠΡΡΡΠΎΠ½Π°, Π‘ΡΠΈΡΠ»ΠΈΠ½Π³Π°
Π§ΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½Π°Π΄ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈ ΠΏΠ»ΠΎΡ ΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ, Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ (Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°) ΠΌΠ΅ΡΠΎΠ΄ Π΄Π°Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ (ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΠ°ΡΡΡΠ°, ΠΠΎΡΠ΄Π°Π½Π°-ΠΠ°ΡΡΡΠ° ΠΈ Ρ. Π΄), Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΡ (Π²Π΅ΠΊΡΠΎΡ Π½Π΅Π²ΡΠ·ΠΊΠΈ) ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ ΠΠ°ΡΡΡΠ°, ΠΡΡΡΠΎΠ½Π°, Π‘ΡΠΈΡΠ»ΠΈΠ½Π³Π° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π ΠΎΡΡΠΈΠΉΡΠΊΠΎΠΉ Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΠΈ Π‘ΠΈΠ±ΠΈΡΡΠΊΠΈΠΉ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ Π€Π°ΠΊΡΠ»ΡΡΠ΅Ρ: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΠ°ΡΠ΅Π΄ΡΠ°: Π‘ΠΈΡΡΠ΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ ΠΠ°ΡΡΡΠ°, ΠΡΡΡΠΎΠ½Π°, Π‘ΡΠΈΡΠ»ΠΈΠ½Π³Π° Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ: ΠΠ°ΡΠ΅Π½ΠΊΠΎ Π. Π.
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π»: Π ΡΡΠΈΠ½ΠΎΠ² Π.Π.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
1. ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
2. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ
3. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
4. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
5. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ
Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΡΡΡΠΎΠ½Π°, ΠΠ°ΡΡΡΠ° ΠΈ Π‘ΡΠΈΡΠ»ΠΈΠ½Π³Π°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ Π² ΡΡΠ΅Π΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Delphi.
Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ Π·Π°Π΄Π°ΡΠ° ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ f ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΉΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ p, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΠΌ
p (xi)=yi (i=0,1,2, …, n)
1. ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ»Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΡΡΠ°Π²ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΠ°Π·Π½ΠΎΡΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΡΡ ΡΠΎΡΠΌΡΠ» ΠΡΡΡΠΎΠ½Π°, ΠΠ°ΡΡΡΠ° ΠΈ Π‘ΡΠΈΡΠ»ΠΈΠ½Π³Π°.
2. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ
ΠΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ y=f (x) Π·Π°Π΄Π°Π½Π° Π½Π° ΡΠ΅ΡΠΊΠ΅ ΡΠ°Π²Π½ΠΎΠΎΡΡΡΠΎΡΡΠΈΡ ΡΠ·Π»ΠΎΠ²
xi=xo+ih,
Π³Π΄Π΅ i=0, 1,…, n, ΠΈ Π΄Π»Ρ Π½Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠ°Π·Π½ΠΎΡΡΠ΅ΠΉ.
ΠΡΠ΄Π΅ΠΌ ΡΡΡΠΎΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ Pn(x) Π² ΡΠΎΡΠΌΠ΅:
Pn(x)=a0+a1(x-x0)+a2(x-x0)(x-x1)+…+an(x-x0)(x-x1)…(x-xn-1)
3. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ²Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
1. Π€ΡΠ½ΠΊΡΠΈΡ Π²Π²ΠΎΠ΄Π°:
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΡΠ°ΠΉΠ½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
procedure TForm1. Button1Click (Sender: TObject);
begin
x0:=strtofloat (EditXo.text);
h:=(Strtofloat (EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]: =strtofloat (setka.Cells[i+1,1]);
PN1:=PolyNuton1;
PN2:=PolyNuton2;
for i:=0 to n do
y[i-(n div 2)]: =y[i];
x0:=x0+(n div 2)*h;
PG1:=PolyGauss1;
PG2:=PolyGauss2;
PS:=PolyStirling;
With Polynoms do
begin
Cells[1,0]: =PN1; Cells[1,1]: =PN2;
Cells[1,2]:=PG1; Cells[1,3]: =PG2;
Cells[1,4]:=PS;
DrawGraph;
end;
2. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ:
Function PolyNuton1: string;
Function PolyNuton2: string;
Function PolyGauss1: string;
ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅
Function PolyGauss2: string;
Function PolyStirling: string;
Function PolyN1(x:extended):extended;
Function PolyN2(x:extended):extended;
Function PolyG1(x:extended):extended;
ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ
Function PolyG2(x:extended):extended;
Function PolyS (x:extended):extended;
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°:
procedure TForm1. Button1Click (Sender: TObject);
begin
x0:=strtofloat (EditXo.text);
h:=(Strtofloat (EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]: =strtofloat (setka.Cells[i+1,1]);
PN1:=PolyNuton1;
PN2:=PolyNuton2;
for i:=0 to n do
y[i-(n div 2)]: =y[i];
x0:=x0+(n div 2)*h;
PG1:=PolyGauss1;
PG2:=PolyGauss2;
PS:=PolyStirling;
With Polynoms do
begin
Cells[1,0]: =PN1; Cells[1,1]: =PN2;
Cells[1,2]:=PG1; Cells[1,3]: =PG2;
Cells[1,4]:=PS;
end;
DrawGraph;
end;
Procedure DrawGraph — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ²
4. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Math, StdCtrls, Spin, StrUtils, ExtCtrls;
type
TArray=array[-100.200] of extended;
TForm1 = class (TForm)
Setka: TStringGrid;
SpinEditn: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
EditXo: TEdit;
Label3: TLabel;
EditXn: TEdit;
Button1: TButton;
Polynoms: TStringGrid;
Image1: TImage;
CheckN1: TCheckBox;
CheckN2: TCheckBox;
CheckG1: TCheckBox;
CheckG2: TCheckBox;
CheckS: TCheckBox;
procedure Button1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure EditXnExit (Sender: TObject);
procedure EditXoExit (Sender: TObject);
procedure SpinEditnKeyPress (Sender: TObject; var Key: Char);
procedure SpinEditnExit (Sender: TObject);
procedure PolynomsKeyPress (Sender: TObject; var Key: Char);
procedure CheckN1Click (Sender: TObject);
private
Function Fact (n:longint):longint; //ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»
Function C (n, k: integer):extended; //Π‘ ΠΈΠ· n ΠΏΠΎ k
Function Delta (k:integer;y:Tarray;i:integer):extended; //ΠΠ΅Π»ΡΡΠ° ΠΊ-ΠΎΠΉ ΡΡΠ΅ΠΏ. Yi
Procedure ZapX; //Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡΠΎΠΊΡ Ρ x-ΠΌΠΈ
Function PolyNuton1: string;
Function PolyNuton2: string;
Function PolyGauss1: string;
Function PolyGauss2: string;
Function PolyStirling: string;
Function PolyN1(x:extended):extended;
Function PolyN2(x:extended):extended;
Function PolyG1(x:extended):extended;
Function PolyG2(x:extended):extended;
Function PolyS (x:extended):extended;
Procedure DrawGraph;
public
{ Public declarations }
end;
var
Form1: TForm1;
y:TArray;
n, i, j, k: integer;
h, x0, z, x, r:extended;
PN1,PN2,PG1,PG2,PS:string;
implementation
{$R *.dfm}
Procedure TForm1. DrawGraph;
var
scx, scy, miny, maxy: extended;
i:integer;
begin
x0:=strtofloat (EditXo.text);
h:=(Strtofloat (EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]: =strtofloat (setka.Cells[i+1,1]);
scx:=(image1.Width-30)/n;
miny:=y[0];
maxy:=miny;
for i:=1 to n do
begin
If miny>y[i] then miny:=y[i];
If maxy
end;
scy:=(Image1.Height-30)/(maxy-miny);
Image1.Canvas.FillRect (Rect (0,0,Width, Height));
With Image1. Canvas do
begin
Pen.Color:=clLime;
Pen.Style:=psSolid;
Pen.Width:=1;
for i:=0 to n do
begin
Moveto (20+round (scx*i), Image1. Height-15);
Lineto (20+round (scx*i), 0);
TextOut (15+round (scx*i), Image1. Height-15,floatToStr (x0+i*h));
Moveto (15,Image1.Height-20-round (scy*(y[i]-miny)));
LineTo (Image1.Width, Image1. Height-20-round (scy*(y[i]-miny)));
TextOut (5,Image1.Height-27-round (scy*(y[i]-miny)), floatToStr (y[i]));
end;
end;
With Image1. Canvas do
begin
Pen.Color:=clblack;
Pen.Width:=3;
Moveto (20,Image1.Height-20-round (scy*(y[0]-miny)));
for i:=1 to n do
LineTo (20+round (scx*i), Image1. Height-20-round (scy*(y[i]-miny)));
pen.Width:=2;
For i:=21 to Image1. Width-10 do
begin
If CheckN1. Checked then
begin
Pen.Color:=clBlue;
Moveto (i-1,Image1.Height-20-round (scy*(PolyN1(x0+(i-21)*h/scx)-miny)));
Lineto (i, Image1. Height-20-round (scy*(PolyN1(x0+(i-20)*h/scx)-miny)));
end;
If CheckN2. Checked then
begin
Pen.Color:=clGreen;
Moveto (i-1,Image1.Height-20-round (scy*(PolyN2(x0+(i-21)*h/scx)-miny)));
Lineto (i, Image1. Height-20-round (scy*(PolyN2(x0+(i-20)*h/scx)-miny)));
end;
end;
for i:=0 to n do
y[i-(n div 2)]: =y[i];
x0:=x0+(n div 2)*h;
For i:=21 to Image1. Width-10 do
begin
If CheckG1. Checked then
begin
Pen.Color:=clRed;
Moveto (i-1,Image1.Height-20-round (scy*(PolyG1(x0-(n div 2)*h+(i-21)*h/scx)-miny)));
Lineto (i, Image1. Height-20-round (scy*(PolyG1(x0-(n div 2)*h+(i-20)*h/scx)-miny)));
end;
If CheckG2. Checked then
begin
Pen.Color:=rgb (50,200,150);
Moveto (i-1,Image1.Height-20-round (scy*(PolyG2(x0-(n div 2)*h+(i-21)*h/scx)-miny)));
Lineto (i, Image1. Height-20-round (scy*(PolyG2(x0-(n div 2)*h+(i-20)*h/scx)-miny)));
end;
If CheckS. Checked then
begin
Pen.Color:=clgray;
Moveto (i-1,Image1.Height-20-round (scy*(PolyS (x0-(n div 2)*h+(i-21)*h/scx)-miny)));
Lineto (i, Image1. Height-20-round (scy*(PolyS (x0-(n div 2)*h+(i-20)*h/scx)-miny)));
end;
end;
end;
end;
Procedure TForm1. ZapX;
begin
x0:=strtofloat (EditXo.text);
h:=(Strtofloat (EditXn.Text)-x0)/n;
For i:=1 to n+1 do
Setka.Cells[i, 0]: =floattostr (x0+pred (i)*h);
end;
Function TForm1. Fact (n:integer):longint;
var i: integer;
begin
Result:=1;
For i:=1 to n do
Result:=Result*i;
end;
function Tform1. C (n, k: integer):extended;
begin
Result:=fact (n)/(fact (k)*fact (n-k));
end;
Function Tform1. Delta (k:integer;y:TArray;i:integer):extended;
var j: integer;
begin
result:=0;
For j:=0 to k do
Result:=result+intpower (-1,j)*C (k, j)*y[k+i-j];
end;
Function TForm1. PolyNuton1:string;
begin
Result:=floattostr (y[0]);
For i:=1 to n do
begin
z:=Delta (i, y,0)/(fact (i)*IntPower (h, i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr (z);
For j:=1 to i do
begin
z:=x0+pred (j)*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr (z)+')'
else Result:=Result+'(x'+floattostr (z)+')'
end;
end;
end;
Function Tform1. PolyN1(x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=Delta (i, y,0)/(fact (i)*IntPower (h, i));
if z=0 then continue;
r:=z;
For j:=1 to i do
begin
z:=x0+pred (j)*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1. PolyNuton2:string;
begin
Result:=floattostr (y[n]);
For i:=1 to n do
begin
z:=Delta (i, y, n-i)/(fact (i)*IntPower (h, i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr (z);
For j:=n downto n-pred (i) do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr (z)+')'
else Result:=Result+'(x'+floattostr (z)+')'
end;
end;
end;
Function Tform1. PolyN2(x:extended):extended;
begin
Result:=(y[n]);
For i:=1 to n do
begin
z:=Delta (i, y, n-i)/(fact (i)*IntPower (h, i));
if z=0 then continue;
r:=z;
For j:=n downto n-pred (i) do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1. PolyGauss1:string;
begin
Result:=floattostr (y[0]);
For i:=1 to n do
begin
z:=Delta (i, y,-(i div 2))/(fact (i)*IntPower (h, i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr (z);
For j:=-(i div 2)+1-i mod 2 to (i div 2) do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr (z)+')'
else Result:=Result+'(x'+floattostr (z)+')'
end;
end;
end;
Function Tform1. PolyG1(x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=Delta (i, y,-(i div 2))/(fact (i)*IntPower (h, i));
if z=0 then continue;
r:=z;
For j:=-(i div 2)+1-i mod 2 to (i div 2) do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1. PolyGauss2:string;
begin
Result:=floattostr (y[0]);
For i:=1 to n do
begin
z:=Delta (i, y,-(succ (i) div 2))/(fact (i)*IntPower (h, i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr (z);
For j:=-(i div 2) to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr (z)+')'
else Result:=Result+'(x'+floattostr (z)+')'
end;
end;
end;
Function Tform1. PolyG2(x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=Delta (i, y,-(succ (i) div 2))/(fact (i)*IntPower (h, i));
if z=0 then continue;
r:=z;
For j:=-(i div 2) to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1. PolyStirling:string;
begin
Result:=floattostr (y[0]);
For i:=1 to n do
begin
z:=(Delta (i, y,-(i div 2))+Delta (i, y,-(succ (i) div 2)))/(2*fact (i)*IntPower (h, i));
If not (odd (i)) then z:=z/2;
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr (z);
For j:=-(i div 2)+1-i mod 2 to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr (z)+')'
else Result:=Result+'(x'+floattostr (z)+')'
end;
If not (odd (i)) then
begin
z:=-2*x0;
If z=0 then Result:=result+'2x'
else
if z<0
then Result:=Result+'(2x'+floattostr (z)+')'
else Result:=Result+'(2x+'+floattostr (z)+')';
end;
end;
end;
Function Tform1. PolyS (x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=(Delta (i, y,-(i div 2))+Delta (i, y,-(succ (i) div 2)))/(2*fact (i)*IntPower (h, i));
If not (odd (i)) then z:=z/2;
if z=0 then continue;
r:=z;
For j:=-(i div 2)+1-i mod 2 to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
If not (odd (i)) then r:=r*(2*(x-x0));
Result:=Result+r;
end;
end;
procedure TForm1. Button1Click (Sender: TObject);
begin
x0:=strtofloat (EditXo.text);
h:=(Strtofloat (EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]: =strtofloat (setka.Cells[i+1,1]);
PN1:=PolyNuton1;
PN2:=PolyNuton2;
for i:=0 to n do
y[i-(n div 2)]: =y[i];
x0:=x0+(n div 2)*h;
PG1:=PolyGauss1;
PG2:=PolyGauss2;
PS:=PolyStirling;
With Polynoms do
begin
Cells[1,0]: =PN1; Cells[1,1]: =PN2;
Cells[1,2]:=PG1; Cells[1,3]: =PG2;
Cells[1,4]:=PS;
end;
DrawGraph;
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
n:=4;
With Polynoms do
begin
ColWidths[1]: =1593;
Cells[0,0]:='I ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ ΠΡΡΡΠΎΠ½Π°';
Cells[0,1]: ='II ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ ΠΡΡΡΠΎΠ½Π°';
Cells[0,2]: ='I ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ ΠΠ°ΡΡΡΠ°';
Cells[0,3]: ='II ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ ΠΠ°ΡΡΡΠ°';
Cells[0,4]: ='ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ Π‘ΡΠΈΡΠ»ΠΈΠ½Π³Π°';
end;
With setka do
begin
Cells[0,0]: =' x';
Cells[0,1]: =' y';
zapX
end;
end;
procedure TForm1. EditXnExit (Sender: TObject);
begin
If StrTofloat (EditXn.Text)
EditXn.Undo;
ZapX;
end;
procedure TForm1. EditXoExit (Sender: TObject);
begin
If StrTofloat (EditXn.Text)
EditXo.Undo;
ZapX;
end;
procedure TForm1. SpinEditnKeyPress (Sender: TObject; var Key: Char);
begin
If not (key in ['0'.'9','-',#8,DecimalSeparator]) then key:=#0;
end;
procedure TForm1. SpinEditnExit (Sender: TObject);
begin
setka.ColCount:=SpinEditn.Value+1;
n:=SpinEditn.Value-1;
ZapX;
end;
procedure TForm1. PolynomsKeyPress (Sender: TObject; var Key: Char);
begin
key:=#0;
procedure TForm1. CheckN1Click (Sender: TObject);
begin
DrawGraph;
end;
end.5. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ².
Π₯ΠΎΡΠΎΡΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ (ΠΠ²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ)
β | Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ | ΠΠ΅ΠΊΡΠΎΡ Π½Π΅Π²ΡΠ·ΠΊΠΈ® | ΠΠΎΡΠΌΠ° ΠΌΠ°ΡΡΠΈΡΡ ||r||-ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ | |
r1=0,1 r2=0 r3=0 | ||r||=101 | |||
r1=0 r2=0,2 r3=0,3 r4=0,3 | ||r||=153 | |||
r1=0,2 r2=0,4 r3=0,3 r4=0,6 r5=0,1 r6=0,3 r7=0,12 r8=0,1 r9=0,4 r10=0,21 | ||r||=362 | |||
Π₯ΠΎΡΠΎΡΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ (ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ)
β | Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ | ΠΠ΅ΠΊΡΠΎΡ Π½Π΅Π²ΡΠ·ΠΊΠΈ® | ΠΠΎΡΠΌΠ° ΠΌΠ°ΡΡΠΈΡΡ ||r||-ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ | ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ | |
r1=0 r2=0 r3=0 | ||r||=13 | ΠΡ 1 Π΄ΠΎ 5 | |||
r1=0 r2=0 r3=0 r4=0 | ||r||=36 | ΠΡ 1 Π΄ΠΎ10 | |||
r1=0,14 r2=0,4 r3=0,13 r4=0,9 r5=0,32 r6=0,1 r7=0,12 r8=0,21 r9=0,2 r10=0,22 | ||r||=472 | ΠΡ 1 Π΄ΠΎ 100 | |||
ΠΠ»ΠΎΡ ΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ (ΠΠ²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ)
β | Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ | ΠΠ΅ΠΊΡΠΎΡ Π½Π΅Π²ΡΠ·ΠΊΠΈ® | ΠΠΎΡΠΌΠ° ΠΌΠ°ΡΡΠΈΡΡ ||r||-ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ | |
r1=0,1 r2=0,21 r3=0,3 | ||r||=1,45 | |||
r1=0,12 r2=0,2 r3=0,5 r4=0,21 | ||r||=2,67 | |||
r1=0,3 r2=0,32 r3=0,23 r4=0,78 r5=0,5 r6=0,36 r7=0,11 r8=0,54 r9=0,262 r10=0,50 | ||r||=3,49 | |||
ΠΠ»ΠΎΡ ΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ (Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ 1/I+j)
β | Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ | ΠΠ΅ΠΊΡΠΎΡ Π½Π΅Π²ΡΠ·ΠΊΠΈ® | ΠΠΎΡΠΌΠ° ΠΌΠ°ΡΡΠΈΡΡ ||r||-ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ | |
r1=0 r2=0 r3=0 | ||r||=1,83 | |||
r1=0 r2=0 r3=0 r4=0 | ||r||=2,08 | |||
r1=0 r2=0 r3=0 r4=0 r5=0 r6=0 r7=0 r8=0 r9=0 r10=0 | ||r||=2,92 | |||
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π° A*Ρ =B ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ΅ΡΠΎΠ΄ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡΡ Π½Π° Π΄Π²Π° ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΡΡΠ΅, ΡΠ΅ΠΌ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ (ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΠ°ΡΡΡΠ°, ΠΠΎΡΠ΄Π°Π½Π°-ΠΠ°ΡΡΡΠ° ΠΈ Ρ. Π΄), Π·Π° ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΡΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π§ΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½Π°Π΄ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈ ΠΏΠ»ΠΎΡ ΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ, Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ (Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°) ΠΌΠ΅ΡΠΎΠ΄ Π΄Π°Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ (ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΠ°ΡΡΡΠ°, ΠΠΎΡΠ΄Π°Π½Π°-ΠΠ°ΡΡΡΠ° ΠΈ Ρ. Π΄), Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΡ (Π²Π΅ΠΊΡΠΎΡ Π½Π΅Π²ΡΠ·ΠΊΠΈ) ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Π§ΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Pentium 4 Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ (real).
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
1. Π€Π°Π΄Π΄Π΅Π΅Π² Π. Π., Π€Π°Π΄Π΄Π΅Π΅Π²Π° Π. Π. ΠΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±ΡΡ.-Π.: Π€ΠΈΠ·ΠΌΠ°ΡΠ³ΠΈΠ·, 1963. 734 Ρ.
2. ΠΡΠ»ΡΡΠΈΠ½ Π. Π. ΠΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ 0 Π Delphi 7. — Π‘ΠΠ±.: ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2003. -608Ρ.: ΠΈΠ».
3. ΠΠΎΠ±ΡΠΎΠ²ΡΠΊΠΈΠΉ Π. Π‘. Delphi 7. Π£ΡΠ΅Π±Π½ΡΠΉ ΠΊΡΡΡ. — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2003. — 736 Ρ.: ΠΈΠ».