Librairie utiliter > Fichier encler.f |
SUBROUTINE ENCLER (NOMBRE,IMAGE)
Auteur : D.Martin (Fev.88) Derniere modification (D.Martin) le 6 Decembre 1996 Representer le nombre NOMBRE sous forme d'une chaine de caracteres . Si NOMBRE est trop grand pour etre represente (longueur de IMAGE trop petite) IMAGE est rempli de + ou de - selon le signe de NOMBRE .
INTEGER NOMBRE CHARACTER*(*) IMAGE INTEGER LONMAX,IPUIS,NEWNB,I,IPOS,J,ICONE
LONMAX=LEN (IMAGE) IMAGE=' ' IF (NOMBRE.LT.0) LONMAX=LONMAX-1 IPUIS=1 NEWNB=ABS (NOMBRE) Recherche de la plus petite puissance de 10 superieure a NOMBRE DO 1 I=1,LONMAX IPUIS=10*IPUIS IF (NEWNB.LT.IPUIS) GOTO 5 1 CONTINUE Cas ou le nombre ne peut etre represente dans la chaine IMAGE : IF (NOMBRE.GT.0) THEN DO 2 I=1,LONMAX IMAGE(I:I)='+' 2 CONTINUE ELSE DO 3 I=1,LONMAX+1 IMAGE(I:I)='-' 3 CONTINUE ENDIF RETURN 5 IPOS=LONMAX-I IF (NOMBRE.LT.0) THEN IPOS=IPOS+1 IMAGE(IPOS:IPOS)='-' ENDIF DO 6 J=1,I IPOS=IPOS+1 IPUIS=IPUIS/10 ICONE=NEWNB/IPUIS IMAGE(IPOS:IPOS)=CHAR(ICONE+48) NEWNB=NEWNB-ICONE*IPUIS 6 CONTINUE END !Encler