intlre
C INTLRE SOURCE PASCAL 21/07/15 21:15:05 11076 C----------------------------------------------------------------------C C INTERSECTION DEUX LISTREEL C C SYNTAXE : voir notice C C ENTREES : C - IPROG1 : LISTREEL 1 C - IPROG2 : LISTREEL 2 C SORTIE : le resultat est renvoye dans la pile. C C----------------------------------------------------------------------C IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC CCREEL -INC SMLREEL SEGMENT ILU1(LL1) C Activation de l'objet : MLREE1 = IPROG1 MLREE2 = IPROG2 C---- CAS LISTREEL VIDE EN ARGUMENT ----C IF (JG1.EQ.0) THEN RETURN ENDIF IF (JG2.EQ.0) THEN RETURN ENDIF C---- CAS GENERAL ----C C On met la liste la + longue en 2e IF (JG1.GT.JG2) THEN JG = JG2 JG2 = JG1 JG1 = JG MLREEL = MLREE2 MLREE2 = MLREE1 MLREE1 = MLREEL ENDIF C Initialisation du segment resultat JG = MIN(JG1,JG2) SEGINI, MLREEL C Inidicateur elts 2e liste lus LL1 = JG2 SEGINI, ILU1 JG = 0 DO 100 I1=1,JG1 INUL1 = 0 IF (ABS(XVAL1).LT.XPETIT) INUL1 = 1 INUL2 = 0 IF (ABS(XVAL2).LT.XPETIT) INUL2 = 1 IF (INUL1.EQ.INUL2) THEN IF (INUL1.EQ.1) THEN JG = JG + 1 GOTO 100 ELSE IF (A_EGALE_B(XVAL1,XVAL2)) THEN JG = JG + 1 GOTO 100 ENDIF ENDIF ENDIF 110 CONTINUE 100 CONTINUE SEGADJ,MLREEL C Ecriture resultat dans la pile : RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales