1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
PROGRAM EXCEL
INTEGER MAXCOL, MAXLIG
PARAMETER (MAXCOL = 2)
PARAMETER (MAXLIG = 3)
INTEGER T(MAXCOL,MAXLIG)
CHARACTER*255 OPERA
CHARACTER*2 SOURCE,CIBLE
C Initialisation du tableau avec n'importe quoi
DATA T / 1, 0, 2, 0, 0, 0 /
WRITE (*,*) 'TABLEAU INITIAL'
CALL LIRET (T,MAXCOL,MAXLIG)
WRITE (*,*) 'ENTRER L''OPERATION : '
READ (*,'(A)') OPERA
IF (OPERA(1:6) .EQ. 'COPIER') THEN
SOURCE = OPERA(8:9)
CIBLE = OPERA(11:12)
CALL COPIET (T,MAXCOL,MAXLIG,SOURCE,CIBLE)
CALL LIRET (T,MAXCOL,MAXLIG)
END IF
END
C-----------------------------------------------------------------------
SUBROUTINE INDCEL(I,J,C)
C Convertit les indices I,J vers une cellule C
INTEGER I,J
CHARACTER*2 C
C(1:1) = CHAR (I + 64)
C(2:2) = CHAR (J + 48)
END
C-----------------------------------------------------------------------
SUBROUTINE CELIND(C,I,J)
C Convertit la cellule C en indices I,J
CHARACTER*2 C
INTEGER I,J
I = ICHAR (C(1:1)) - 64
J = ICHAR (C(2:2)) - 48
END
C-----------------------------------------------------------------------
SUBROUTINE LIRET (T,MAXCOL,MAXLIG)
C Affiche le contenu du tableau
INTEGER T(MAXCOL,MAXLIG), I, J
CHARACTER*2 C
DO 10 I=1,MAXCOL
DO 10 J=1,MAXLIG
CALL INDCEL(I,J,C)
WRITE (*,11) C,T(I,J)
10 CONTINUE
11 FORMAT (T2,'Cellule ',A2,' = ',I1)
END
C-----------------------------------------------------------------------
SUBROUTINE COPIET (T,MAXCOL,MAXLIG,SOURCE,CIBLE)
C Copie la valeur de la cellule SOURCE dans la cellule CIBLE
INTEGER MAXCOL,MAXLIG,I1,I2,J1,J2
INTEGER T(MAXCOL,MAXLIG)
CHARACTER*2 SOURCE, CIBLE
CALL CELIND (SOURCE,I1,J1)
CALL CELIND (CIBLE,I2,J2)
T(I2,J2) = T(I1,J1)
END |
Partager