unit2.pas
来自「1、说明: 本书中所有的常用数值算法子过程按书中的章数分别放在以C开头」· PAS 代码 · 共 53 行
PAS
53 行
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,unit1, Dialogs;
procedure TRAPZD(A, B:real;var S:real; N:integer);
procedure QTRAP(A, B:real; var S:real);
implementation
procedure TRAPZD(A, B:real;var S:real; N:integer);
var
J,IT:integer;
TNM,DEL,X,SUM:real;
begin
If N = 1 Then
begin
S:=0.5 * (B - A) * (FUNC(A) + FUNC(B));
IT:=1;
end
Else
begin
IT:=Trunc(exp((N - 2)*Ln(2)));
TNM:=IT;
DEL:=(B - A) / TNM;
X:=A + 0.5 * DEL;
Sum:=0;
For J:=1 To IT do
begin
Sum:=Sum + FUNC(X);
X:=X + DEL;
end;
S:=0.5 * (S + (B - A) * Sum / TNM);
end;
end;
procedure QTRAP(A, B:real; var S:real);
const
EPS = 0.000001; JMAX = 20;
var
OLDS:real; J:integer;
begin
OLDS:= -1E+30;
For J:= 1 To JMAX do
begin
TRAPZD(A, B, S, J);
If (Abs(S - OLDS) < (EPS * Abs(OLDS))) Then Exit;
OLDS:= S;
end;
ShowMessage('Too many steps.');
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?