📄 unit2.pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,UNIT1,Dialogs;
procedure POLINT(XA, YA:array of real; N:integer; X:real; var Y, DY:real);
procedure POLIN2(X1A, X2A:array of real; YA:matrx2; M, N:integer; X1, X2:real;
var Y, DY:real);
implementation
procedure POLINT(XA, YA:array of real; N:integer; X:real; var Y, DY:real);
var
C,D:array[0..10] of real;
DIF,DIFT,HO,HP,W,DEN,te:real;
NS,I,M:integer;
begin
NS:=1;
DIF:=Abs(X - XA[1]);
For I:=1 To N do
begin
DIFT:=Abs(X - XA[I]);
If DIFT < DIF Then
begin
NS:=I;
DIF:=DIFT;
end;
C[I]:=YA[I];
D[I]:=YA[I];
end;
Y:=YA[NS];
NS:=NS - 1;
For M:=1 To N - 1 do
begin
For I:=1 To N - M do
begin
HO:=XA[I] - X;
HP:=XA[I + M] - X;
W:=C[I + 1] - D[I];
DEN:=HO - HP;
If DEN = 0 Then
begin
ShowMessage('Failure in point');
Exit;
end;
DEN:=W / DEN;
D[I]:=HP * DEN;
C[I]:=HO * DEN;
end;
If (2 * NS) < (N - M) Then
DY:=C[NS + 1]
Else
begin
DY:=D[NS];
NS:=NS - 1;
end;
Y:=Y + DY;
end;
end;
procedure POLIN2(X1A,X2A:array of real;YA:matrx2; M, N:integer;
X1, X2:real;var Y, DY:real);
var
YNTMP,YMTMP:array[0..20] of real;
J,K:integer;
begin
For J:=1 To M do
begin
For K:=1 To N do
YNTMP[K]:=YA[J, K];
POLINT(X2A,YNTMP, N, X2, YMTMP[J], DY);
end;
POLINT(X1A, YMTMP, M, X1, Y, DY);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -