simp2.pas

来自「Delphi Pascal 数据挖掘领域算法包 数值算法大全」· PAS 代码 · 共 41 行

PAS
41
字号
PROCEDURE simp2(a: glmpbynp; m,n,mp,np: integer;
      l2: glmparray; nl2: integer; VAR ip: integer;
      kp: integer; VAR q1: real);
(* Programs using routine SIMP2 must define the types
TYPE
   glmpbynp = ARRAY [1..mp,1..np] OF real;
   glmparray = ARRAY [1..mp] OF integer;
in the main routine. *)
LABEL 2,6,99;
VAR
   k,ii,i: integer;
   qp,q0,q: real;
BEGIN
   ip := 0;
   IF (nl2 < 1) THEN GOTO 99;
   FOR i := 1 TO nl2 DO BEGIN
      IF (a[l2[i]+1,kp+1] < 0.0) THEN GOTO 2
   END;
   GOTO 99;
2:   q1 := -a[l2[i]+1,1]/a[l2[i]+1,kp+1];
   ip := l2[i];
   IF ((i+1) > nl2) THEN GOTO 99;
   FOR i := i+1 TO nl2 DO BEGIN
      ii := l2[i];
      IF (a[ii+1,kp+1] < 0.0) THEN BEGIN
         q := -a[ii+1,1]/a[ii+1,kp+1];
         IF (q < q1) THEN BEGIN
            ip := ii;
            q1 := q
         END ELSE IF (q = q1) THEN BEGIN
            FOR k := 1 TO n DO BEGIN
               qp := -a[ip+1,k+1]/a[ip+1,kp+1];
               q0 := -a[ii+1,k+1]/a[ii+1,kp+1];
               IF (q0 <> qp) THEN GOTO 6
            END;
6:            IF (q0 < qp) THEN ip := ii
         END
      END
   END;
99:   END;

⌨️ 快捷键说明

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