📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
//PROGRAM D2R4
//Driver for routine SPLINT, which calls SPLINE
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
XA,YA,Y2:array[0..10] of real;
X,Y,FF,YP1,YPN:real;
F:TextFile; I,NFUNC:Integer;
const
NP=10; PI=3.1415926; s1='%12.6f'; s2='0.0000E+00';
begin
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p2\d2r4.dat');
Rewrite(F);
For NFUNC:=1 To 2 do
begin
If NFUNC = 1 Then
begin
Writeln(F,'Sine function from 0 to PI');
For I:=1 To NP do
begin
XA[I]:=I * PI / NP;
YA[I]:=Sin(XA[I]);
end;
YP1:= COS(XA[1]);
YPN:= COS(XA[NP]);
end
else
begin
Writeln(F,'****************************************');
Writeln(F,'Exponential function from 0 to 1');
For I:=1 To NP do
begin
XA[I]:=I / NP;
YA[I]:=Exp(XA[I]);
end;
YP1:= EXP(XA[1]);
YPN:= EXP(XA[NP]);
end;
SPLINE(XA,YA,NP,YP1,YPN,Y2);
Writeln(F,' x f(x) interpolated');
For I:=1 To 10 do
begin
If NFUNC = 1 Then
begin
X:=(-0.05 + I / 10) * PI;
FF:=Sin(X);
end
else
begin
X:=(-0.05 + I / 10);
FF:=Exp(X);
end;
SPLINT(XA, YA, Y2, NP, X, Y);
Writeln(F,Format(s1,[X]),Format(s1,[FF]),Format(s1,[Y]));
end;
end;
Writeln(F,'****************************************');
CloseFile(F);
//屏幕显示计算结果
memo1.ScrollBars:=ssVertical;
memo1.Lines.LoadFromFile('d:\delphi_shu\p2\d2r4.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -