| |
Programmation C |
|
Variable de
tableau multidimensionnel :
On pourrait représenter un tableau à 2 dimensions par un exemple concret de
la façon suivante :
float i[3][4];
|
ID produit |
Prix (Eur) |
Quantité |
Commandes |
|
i[0][0] |
i[0][1] |
i[0][2] |
i[0][3] |
|
i[1][0] |
i[1][1] |
i[1][2] |
i[1][3] |
|
i[2][0] |
i[2][1] |
i[2][2] |
i[2][3] |
L'affectation des
valeurs se fait comme pour un tableau à 1 dimension :
i[0][0] = 001;
Pour plus de lisibilité, récapitulons l'ensemble des valeurs dans un tableau :
|
ID produit |
Prix (Eur) |
Quantité |
Commandes |
|
001 |
199 |
2 |
2 |
|
002 |
2.56 |
0 |
0 |
|
003 |
29.90 |
8 |
544 |
Dans cet exemple, chaque produit est identifié par un numéro ID. Chaque produit
possède des informations uniques : le prix, la quantité et le nombre de
commandes.
La première dimension nous permet de stocker l'ensemble des ID produits. La
seconde dimension nous permet d'avoir des renseignements sur l'ID produit
concerné.
Attention, les éléments d'un tableau sont tous de même type ! Dans l'exemple,
tous les éléments sont de type float.
i[1][1]; //correspond au
prix du produit 002, c'est dire qu'il vaut 2.56 Eur.
Il est possible, selon les compilateurs, de ne pas renseigner la première
dimension, mais les dimensions suivantes, sont obligatoires pour une raison de
stockage mémoire.
Effectivement, int i[]; définit un tableau non limité, et vous pourrez y mettre
autant d'éléments que vous le voulez, l'ordinateur redimensionnera le tableau
automatiquement à
chaque
ajout de données.
Stockage en mémoire d'un tableau à 2 dimensions et multidimensionnel :
|
Stockage mémoire de float
i[3][4] : extrait |
|
Adresse mémoire
|
2000 |
2004 |
2008 |
2012 |
|
Element |
i[0][2] |
i[0][3] |
i[1][0] |
i[1][1] |
Vous
l'avez compris, il est indispensable de définir la deuxième dimension pour le
stockage linéaire en mémoire.
Pour les tableaux de plus de 2 dimensions, il en va de même, exemple :
int Tab[][4][5][3]; //
Tableau à 4 dimensions.

Ce tableau est bien complexe, mais son fonctionnement demeure relativement
simple, imaginez un compteur où l'index situé le plus à droite est
celui qui défile le plus
vite. L'index de la 4ème dimension à un cycle 0-1-2, qui successivement fait
incrémenter le cycle supérieur : 0-1-2-4-5. etc.
|