📄 d10r6.txt
字号:
implementation
//PROGRAM D10R6
//Driver for routine CONVLV
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
s1='%13.6f'; s2 = '##0';
N = 16; N2 = 32; M = 9; PI = 3.1415926;
var
DATA,RESP:array[0..16] of real; RESPNS:array[0..9] of real;
ANS:array[0..32] of real;
I,J,ISIGN:integer; CMP:real; F:TextFile;
begin
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p10\d10r6.dat');
Rewrite(F);
Writeln(F);
Writeln(F, ' I CONVLV Expected');
For I:=1 To N do
begin
DATA[I]:=0;
If (I >= (N / 2 - N / 8)) And (I <= (N / 2 + N / 8)) Then
DATA[I]:=1;
end;
For I:=1 To M do
begin
RESPNS[I]:=0;
If (I > 2) And (I < 7) Then RESPNS[I]:=1;
RESP[I]:=RESPNS[I];
end;
ISIGN:=1;
CONVLV(DATA, N, RESP, M, ISIGN, ANS);
//Compare with a direct convolution
For I:=1 To N do
begin
CMP:=0;
For J:=1 To (M div 2) do
begin
CMP:=CMP + DATA[((I - J - 1 + N) Mod N) + 1] * RESPNS[J + 1];
CMP:=CMP + DATA[((I + J - 1) Mod N) + 1] * RESPNS[M - J + 1];
end;
CMP:=CMP + DATA[I] * RESPNS[1];
Writeln(F,' ',FormatFloat(s2,I),Format(s1,[ANS[I]]),Format(s1,[CMP]));
end;
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p10\d10r6.dat');
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -