Aller au contenu

Les tableaux à 2 dimensions

"Un tableau à 2 dimensions, c’est comme une grille ou un tableau Excel."

Un développeur structuré

Qu’est-ce qu’un tableau à 2 dimensions ?

Un tableau à deux dimensions est une structure de données en forme de matrice (lignes x colonnes).
Chaque élément est repéré par deux indices : [ligne, colonne]. c'est ce qui se rapproche le plus aux tableaux Excel.

Image title
Tableau à 2 dimensions

Déclaration générale

type[,] nomTableau = new type[NB_LIGNES, NB_COLONNES];

Exemple

int[,] notes = new int[3, 4];

Explication

Élément Signification
int Type des éléments (ici : entiers)
[,] Virgule = tableau à 2 dimensions
notes Nom de la variable
new int[3, 4] Crée un tableau avec 3 lignes et 4 colonnes

Initialisation directe (optionnelle)

int[,] notes = {
    { 14, 12, 16, 13 },
    { 9,  10, 8,  11 },
    { 17, 15, 18, 13 }
};

➡️ Cela crée un tableau de 3 lignes × 4 colonnes avec les valeurs déjà placées.


Accéder à une valeur

int valeur = notes[1, 2];
  • Les indices commencent à 0
  • Ici, on lit la valeur en ligne 1, colonne 2
  • Dans notre exemple : notes[1, 2] vaut 8

Modifier une valeur

notes[0, 1] = 20;
  • Cette ligne remplace la valeur en ligne 0, colonne 1 (qui était 12) par 20

Parcourir un tableau 2D avec deux boucles for

for (int i = 0; i < notes.GetLength(0); i++)        // lignes
{
    for (int j = 0; j < notes.GetLength(1); j++)    // colonnes
    {
        Console.Write(notes[i, j] + "\t");
    }
    Console.WriteLine(); // saut de ligne après chaque ligne
}
  • notes.GetLength(0) ➜ nombre de lignes
  • notes.GetLength(1) ➜ nombre de colonnes

Tableau récapitulatif

Action Code exemple Description
Déclaration int[,] tab = new int[3,4]; Crée un tableau 3×4 vide
Initialisation directe int[,] tab = { {1,2}, {3,4} }; Remplit le tableau à la création
Accès à une valeur tab[1, 0] Lit la case ligne 1, colonne 0
Modifier une valeur tab[0, 1] = 42; Modifie la case ligne 0, colonne 1
Lire nb de lignes tab.GetLength(0) Renvoie le nombre de lignes
Lire nb de colonnes tab.GetLength(1) Renvoie le nombre de colonnes
Parcours complet (double for) voir section ci-dessus Pour lire ou modifier chaque case

🧠 À retenir

Un tableau à 2 dimensions se comporte comme une grille de cases accessibles via deux indices : [ligne, colonne].


Autres exemples

    // Tableau a 2 dimensions
    int[,] tab_int2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; 

    // la même chose en spécifiant les dimensions. 
    int[,] tab_int2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; 

    // un autre tableau de 2 dimension de chaine de caractère 
    string[,] tab_str2a = new string[3, 2] { { "one", "two" }, { "three", "four" }, { "five", "six" } }; 
Image title
Autres propriétés

⚠️ Erreurs fréquentes

  • Indices inversés : tableau[ligne, colonne] et non tableau[colonne, ligne]
  • Accès hors limitesIndexOutOfRangeException
  • Confusion avec les tableaux de tableaux (jagged arrays)

en résumé

Image title
Explication avec des détails parlants

Quiz

Testez vos connaissances ! 📝 Clique sur chaque question pour découvrir la réponse.

1️⃣ Que représente tableau[2,1] dans un tableau 2D ?

A. 2e colonne de la 1ère ligne
B. 3e ligne et 2e colonne
C. 2e ligne et 1re colonne
D. Élément aléatoire
E. Cela dépend de l’ordre d’initialisation

✅ Afficher la réponse
Réponse B: Le premier indice est la ligne (2 = 3e ligne), le second est la colonne (1 = 2e colonne).

2️⃣ Quelle méthode donne le nombre de lignes d’un tableau 2D ?

A. tableau.Length
B. tableau.Count
C. tableau.GetLength(0)
D. tableau.Size(0)
E. tableau.Rows

✅ Afficher la réponse
Réponse C: .GetLength(0) donne la taille de la première dimension (lignes).

3️⃣ Comment afficher tous les éléments d’un tableau 2D ?

A. Une seule boucle for
B. Deux boucles foreach imbriquées
C. Une boucle while
D. Une boucle do...while
E. Une boucle foreach avec LINQ

✅ Afficher la réponse
Réponse B: Deux boucles (for ou foreach) imbriquées sont nécessaires pour parcourir toutes les lignes et colonnes.

4️⃣ Quelle erreur peut se produire si on accède à un indice inexistant ?

A. NullReferenceException
B. IndexOutOfRangeException
C. InvalidOperationException
D. ArgumentException
E. OverFlowException

✅ Afficher la réponse
Réponse B: L'accès hors des bornes lève une IndexOutOfRangeException.

5️⃣ Comment déclare-t-on un tableau de 4 lignes et 5 colonnes ?

A. int[,] tab = new int[4,5];
B. int[][] tab = new int[4][5];
C. int[4,5] tab;
D. array tab = int[4,5];
E. int tab(4,5);

✅ Afficher la réponse
Réponse A: int[,] tab = new int[4,5]; est la bonne syntaxe pour un tableau 2D en C#.


Pour aller plus loin


Navigation

Introduction Tableaux à 1 dimension Tableaux à 2 dimensions Travail pratique