read
et write
avec boucles implicites
A partir des types simples du FORTRAN, on peut former des vecteurs, des matrices, et même des tableaux à plusieurs indices.
|
m1
, m2,... déterminent la taille du tableau. Elles doivent
être des des constantes entières. Il est interdit de mettre des
variables entières. Autrement dit : la taille d'un tableau FORTRAN est fixée
une fois pour toutes.
real v(100)
|
Pour créer des tableaux, il est conseillé de déclarer les tailles dans des constantes symboliques :
parameter (max=100)
|
Avant de déclarer un tableau, pensez à la taille mémoire qu'il va occuper. Le
tableau a
ci-dessus occupe par exemple
octets.
On y accède élément par élément en indiquant le ou les indices entre parenthèses séparés par des virgules. Les indices peuvent être des constantes ou des variables.
Somme de deux matrices :
double precision a(max,max)
|
Produit scalaire de deux vecteurs :
double precision u(max), v(max)
|
read
et write
avec boucles implicites
C'est une extension très pratique pour lire des matrices au clavier ou les
écrire à l'écran. Il s'agit en quelque sorte d'une boucle do
...
enddo
combinée a un read
ou un write
.
|
i
représente une variable entière, var(i)
une expression ou un tableau dépendant de cette variable i
.
i1
, i2
et i3
ont le même sens
que pour les boucles do
.
Lire les n premières composantes d'un vecteur sur une même ligne au clavier :
read(*,*) (v(i), i=1,n) |
Écrire les n premiers termes de la jème ligne d'une matrice à
l'écran, séparés par le caractère « !
» :
write(*,*) (a(i,j), ' ! ', j=1,n) |
La taille de déclaration des tableaux définit la taille mémoire réservée pour stocker le tableau. En général, on choisit cette taille comme étant la taille maximale du problème que l'on veut traiter, mais il se peut que pour un problème particulier, on utilise seulement une partie du tableau.
Dans l'exemple de l'addition, supposons que nous utilisions les tableaux
FORTRAN a(100,100)
et b(100,100)
pour stocker des matrices
.
La structure de a
sera la suivante :
et de même pour b
. Pour faire la somme des deux matrices, il est
inutile d'additionner les 0
, et les boucles doivent être
effectuées de 1 à 3 plutôt que de 1 à 100.
Lorsqu'on utilise un tableau FORTRAN, il faut stocker ses dimensions réelles dans des variables en plus de sa taille de déclaration. |
Dans l'exemple de l'addition précédent, on utilisera une variable n
si on somme des matrices carrées, ou deux variables nligne
et
ncolon
si on somme des matrices rectangulaires.
Écrire un programme complet qui lit au clavier deux matrices de même taille et effectue leur somme. On part du principe que ces matrices ont au plus 50 lignes et 80 colonnes.
On déclare donc 3 tableaux
,
et on utilise deux
variables nligne
et ncolon
pour stocker les
tailles réelles des matrices que l'on traite. Ces tailles réelles
sont bien sûr demandées à l'utilisateur.
parameter (mligne=50, mcolon=80)
|