Admin Admin

Age : 47 Inscrit le : 15 Mar 2008 Messages : 22
| Sujet: cours numéro 09 Dim 16 Mar - 18:08 | |
| 5. Tableaux à plusieurs dimensions :
Le type d'une composante d'un tableau peut être à son tour un tableau, on parle alors d’un tableau à plusieurs dimensions. Par exemple une matrice est un tableau de colonnes.
Exemple: const taille = 10 ; type indice = l..taille ; colonne = array [indice] of Real; matrice = array [indice] of colonne;
Dans cette exemple, le type 'matrice' est un tableau à deux dimensions puisque ses composant sont des vecteurs. La déclaration du type 'colonne' peut être incorporée dans la déclaration du type ‘matrice' :
type matrice = array [indice] of array [indice] of real;
Cette dernière déclaration est assez lourde et peut être simplifiée par la déclaration suivante:
type matrice = array [indice, indice] of real;
Remarque: dans l'exemple plus haut nous avons déclaré un tableau à deux dimensions (qu’'on appelle souvent matrice) dans lequel les intervalles des deux indices sont les mêmes, on parle alors de matrice carrée. On peut envisager le cas d'une matrice rectangle comme dans l'exemple suivant: type mat = array [1..10, 1..15] of real;
. Règles relatives à un tableau à plusieurs dimensions:
. L'accès aux composantes de la matrice se fait en utilisant deux indices (indice de ligne et indice de colonne). Par exemple:
Var a : matrice; i, j : indice ;
les composantes de la matrice a s'écrivent alors a[i,j].
. Les composantes d'un tableau à deux dimensions sont stockées en mémoire dans des cases successives en les alignant ligne par ligne ou colonne par colonne (suivant la convention du compilateur utilisé). Un calcul d'indice est effectué pour passer de la représentation à deux dimensions à la représentation en mémoire centrale (qui est représentation à une seule dimension). . Pratiquement toute opération manipulant une matrice (tableau à deux dimensions) nécessite l'utilisation de deux boucles imbriquées (L’une pour l'indice de ligne et l'autre pour l'indice de colonne). Par exemple:
var a : matrice; i, j : indice; begin (* lecture de la matrice *) for i:=l to taille do for j :=1 to taille do read (a[i,j]) ; end.
Somme de deux matrices: La somme de deux matrices a et b est la matrice c telle quI: Cij = aij + bij.
Program SommeMatrices; Const N = 1..10; M = 1..15 ; Type Ligne = 1..N ; Colonne = 1..M ; Matrice = array [Ligne, Colonne] of Real ; Var A, b, c : Matrice; I : Ligne; J : Colonne; Begin (* Lecture des matrices a et b l'une après l’autre*) for 1:= 1 to N do for J:= 1 to M do read (a[I,J]) ; for 1:= 1 to N do For J:= 1 to M do read (b[I,J]) ; (* Calcul de la somme *) for 1:= 1 to N do for J := 1 to M do c[I,J] := a[I,J] + b[I,J] ; (* Affichage du résultat *) for I:= 1 to N do begin for J := 1 to M do Write (c(I)]) ; Writeln End End. |
|