Outils pour utilisateurs

Outils du site


javascool:les_tableaux:tableau_a_plusieurs_dimensions

Tableau à plusieurs dimensions

Définir un tableau à plusieurs dimensions

Lorsque l'on définit un tableau (voir : déclarer un tableau) les crochets indiquent le nombre de dimensions du tableau. Un tableau à plusieurs dimensions (multidimensionnels) est donc un tableau contenant au minimum 2 tableaux.

int tab[][] = new int [5][7]

Ci-dessus nous avons initialisé un tableau du nom de “tab” à 2 dimensions. Cela signifie qu'il y aura un certain nombre de ligne et de colonne.

[5] correspond au nombre de lignes

[7] correspond au nombre de colonnes (ou l'inverse, mais il y a toujours un nombre de ligne et de colonne, tout dépend de votre logique !)

/!\ Un tableau commence à 0 !

Initialiser un tableau à plusieurs dimensions

Une manière de procéder

Pour initialiser un tableau à plusieurs dimensions il faut mettre autant d'accolades que l'on veut qu'il y ait de lignes et de colonnes remplis de données.

Exemple :

int tab[][] = {{7, 21, 9}, {47, 12, 16}};

Il y aura :

-2 lignes dans le tableau car il y a 2 accolades différentes → {7, 21, 9} et {47, 12, 16}

-3 colonnes sur la ligne 1 et 2 car il y a 3 informations sur ces 2 lignes → 7, 21, 9 et 47, 12, 16

Attention !

Chaque ligne peut avoir un nombre de colonne différente des autres.

Exemple :

int tab2[][] = {{7, 21, 9, 97, 45}, {47, 12}};

Cette fois ci, il y aura :

-2 lignes → {7, 21, 9, 97, 45} et {47, 12}

-Dans la première ligne il y aura 5 colonnes 7, 21, 9, 97, 45 et dans la seconde ligne il y aura 2 colonnes 47, 12

Utilisation d'un tableau à plusieurs dimensions

L'utilisation est semblable à un tableau basique.

Exemple :

int tab2[][] = {{7, 21, 9, 97, 45}, {47, 12}};
println(tab2[1][1]);
println(tab2[0][3]);

Ci-dessus, le programme nous affichera 12 puis 97.

La première case [] nous informe sur quelle ligne, accolade nous allons traiter.

La seconde case [] nous informe sur quelle colonne, donnée, nous allons traiter.

Voici une image qui résume clairement ce qui a été dit précédemment :

Source : openclassrooms.com


Exemples :

int i;
int j;
int n;
void main()
{
  int tab [][] = new int [4][3];
  for(i = 0; i <= 3; i++)
    {
      for(j = 0; j <= 2; j++)
      {
        n = readInteger();
	tab[i][j] = n;
        println(tab[i][j]);
    }
  }
  println(tab[2][2]);
}

Ce programme créer un tableau de 4 lignes et de 3 colonnes (12 cases) où à l'aide de 2 boucles for nous entrons des entiers n dans chaque case d'ordre croissant ([0][0] → [0][1] → [0][2] → [1][0] → etc…) et qui l'affiche directement dans la console.

Pour vérifier notre programme, nous demandons à la fin la case tab[2][2] qui correspond à la 8e case du tableau.

Je rentre 12 entiers de 1 à 12 et le résultat est :

Compilation réussie !
1
2
3
4
5
6
7
8
9
10
11
12
9

Le programme marche donc puisque la dernière ligne montre tab[2][2] qui est la 8e cases, donc 9 (la case 0 est 1 !).


Cours précédent : lire dans un tableau

Cours suivant : récapitulatif des fonctions


Page créée par QUINQUENEL et corrigée par RASTEL

javascool/les_tableaux/tableau_a_plusieurs_dimensions.txt · Dernière modification: 10/12/2013 09:42 par rastel