next up previous contents
Next: Les sections de tableaux Up: coursf90 Previous: Les instructions GOTO et   Contents

Les tableaux

Un tableau est un ensemble ordonné d'éléments de même type désigné par un identificateur unique; chaque élément du tableau est répéré par un indice (nombre entier) précisant sa position au sein de l'ensemble.

Fortran a introduit de nombreuses facilités, fort puissantes et absentes de la plupart des autres langages : opérateurs globales, notion de section tableaux, constructeurs,...

Tout operateur $ +$, $ -$, $ /$, $ *$ peut être appliqué à un tableau pour produire un tableau ayant même profil.

Dans ce chapitre, on considère les déclarations suivantes :

   INTEGER, PARAMETER                         :: mini = -7, maxi = 15
   REAL   , DIMENSION (5)                     :: U, V, W
   REAL   , DIMENSION (10, 20)                :: A, B, C, D
   REAL   , DIMENSION (maxi)                  :: Q
   INTEGER, DIMENSION (-1:10, 0:15)           :: T2, Q2
   INTEGER, DIMENSION (mini:11, -1:maxi+5,3)  :: T3
   LOGICAL, DIMENSION (-1:10, 0:15)           :: TLOG
Etendue, profil, taille d'un tableau.

$ \bullet$ $ V$ a pour étendue 5

$ \bullet$ $ T2$ a pour étendue 12 pour la première dimension et 16 pour la deuxième.

$ \bullet$ $ T2$ a pour profil (12,16), a pour taille $ 12\times 16$ et de rang 2.

$ \bullet$ $ T3$ a pour profil (10-mini,maxi+7,3), a pour taille $ (10-mini)\times (maxi+7)\times 3$ et de rang 3.

Les instructions suivantes sont autant d'expressions construites sur les tableaux.

V = 3.               ! on affecte 3. a tous les elements du tableaux
                     ! DO i = 1, 5
                     !    V(i) = 3.
                     ! ENDDO
A = -1. ; B = 1.E-2  ! ainsi de suite
C = A + B            ! est equivalent a
                     ! DO i = 1, 10
                     !    DO j = 1, 20
                     !       C(i,j) =  A(i,j)+ B(i,j)
                     !    ENDDO
                     ! ENDDO
C = A/B              !  C(i,j) =  A(i,j)/ B(i,j), i = 1, 10, j = 1, 20
W = U*V              ! W(i) = U(i)*V(i), i = 1, 5
D = A*B              ! D(i,j) =  A(i,j)* B(i,j), i = 1, 10, j = 1, 20       
W = U/V +1.          ! W(i) = U(i)/V(i)+1. , pour i = 1, 5
Tlog = T2<S2         ! Tlog est un tableau de logique qui a le meme
                     ! profil que T2, ceci signifie
                     !  Tlog(i,j) = .TRUE. si   T2(i,j)< S2(i,j),   
                     ! pour i = 1, 10, et j = 1, 20
U = 2. *SQRT(V)+5.   ! U(i) = 2.*SQRT(V(i))+5., pour i = 1, 10



Subsections

Mazen Saad 2002-12-12