unit2.pas

来自「1、说明: 本书中所有的常用数值算法子过程按书中的章数分别放在以C开头」· PAS 代码 · 共 63 行

PAS
63
字号
unit Unit2;

interface
uses
  unit1;
Procedure BALANC(var A:matrx2; N:integer);

implementation
Procedure BALANC(var A:matrx2; N:integer);
Label 1,2,3;
var
    I,J:integer;  
    RADIX,SQRDX,C,R,LAST,G,F,S:real;
begin
    RADIX:=2 ;
    SQRDX:=Sqr(RADIX);
1:  Last:=1;
    For I:=1 To N do
    begin
        C:=0;
        R:=0;
        For J:=1 To N do
        begin
            If J <> I Then
            begin
                C:=C + Abs(A[J, I]);
                R:=R + Abs(A[I, J]);
            end;
        End; 
        If (C <> 0)  And (R <> 0)  Then
        begin
            G:=R / RADIX;
            F:=1;
            S:=C + R;
2:          If C < G Then
            begin
                F:=F * RADIX;
                C:=C * SQRDX;
                GoTo 2;
            end;
            G:=R * RADIX;
3:          If C > G Then
            begin
                F:=F / RADIX;
                C:=C / SQRDX;
                GoTo 3;
            end;
            If (C + R) / F < 0.95 * S Then
            begin
                Last:=0;
                G:=1 / F;
                For J:=1 To N do
                    A[I, J]:=A[I, J] * G;
                For J:=1 To N do
                    A[J, I]:=A[J, I] * F;
            end;
        end;
    end; 
    If Last = 0 Then GoTo 1;
End;

end.
 

⌨️ 快捷键说明

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