⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit2.pas

📁 用于开发税务票据管理的软件
💻 PAS
字号:
unit Unit2;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
Function GAMMLN(xx:real):real;
procedure GSER(VAR GAMSER:REAL;A:real;X:REAL;VAR GLN:REAL);

implementation
Function GAMMLN(xx:real):real;
CONST
  STP=2.50662827465; HALF=0.5; ONE=1.0; FPF=5.5;
var
  x,tmp,ser:double;
  j:integer;
  cof:array[1..6] of double;
BEGIN
  COF[1]:=76.18009173;      COF[2]:=-86.50532033;
  COF[3]:=24.01409822;      COF[4]:=-1.231739516;
  COF[5]:= 0.120858003e-2;  COF[6]:=-0.536382e-5;
  X:=XX-ONE;
  TMP:=X+FPF;
  TMP:=(X+HALF)*Ln(TMP)-TMP;
  SER:=ONE;
  For J:=1 To 6 do
    BEGIN
      X:=X+ONE;
      SER:=SER+COF[J]/X
    END;
  GAMMLN:=TMP+Ln(STP*SER);
end;

procedure GSER(var GAMSER:real; A:real; X:real; var GLN:real);
label 1;
const
  ITMAX=100;    EPS=0.3E-6;
var
  N:Integer;
  SUM,DEL,AP:Real;
begin
  GLN:=GAMMLN(A);
  If X <= 0 Then
    If X < 0 Then
    begin
        ShowMessage('警告:X<0,退出程序。');
        goto 1;
    end
  else
  begin
      GAMSER:=0;
      goto 1;
  end;
  AP:=A;
  SUM:=1 / A;
  DEL:=SUM;
  For N:=1 To ITMAX do
  begin
      AP:=AP + 1;
      DEL:=DEL * X / AP;
      SUM:=SUM + DEL;
      If Abs(DEL) < Abs(SUM) * EPS Then GoTo 1;
  end;
  ShowMessage('A too large, ITMAX too small');
1: GAMSER:=SUM * Exp(-X + A * Ln(X) - GLN);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -