Menu
Coddy logo textTech

Modèles courants de tableaux 2D

Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 13 sur 65.

Certains modèles apparaissent souvent lors de la manipulation de tableaux 2D. Reconnaître ces modèles peut vous aider à résoudre des problèmes plus efficacement. Voici quelques modèles courants :

Parcours diagonal

L'accès aux éléments où l'indice de ligne est égal à l'indice de colonne (matrix[i][i]) vous donne la diagonale principale. Pour l'anti-diagonale, la somme des indices de ligne et de colonne est égale à la taille du tableau moins 1 (matrix[i][size - 1 - i]).

Par exemple :

1  2  3
4  5  6
7  8  9

Parcourir la diagonale principale (matrix[i][i]) : 1, 5, 9
Parcourir l'anti-diagonale (matrix[i][size - 1 - i]) : 3, 5, 7

Parcours de la bordure

Pour parcourir les éléments de la bordure, vous maintenez un index constant (0 ou size - 1) tout en itérant sur l'autre.

Pour accéder à la bordure supérieure, vous itérez sur les colonnes avec l'index de ligne fixé à 0.

Par exemple :

1  2  3  4
5  6  7  8
9 10 11 12

éléments de bordure : 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (tous sauf 6 et 7)

challenge icon

Défi

Facile

Créez une fonction nommée printPatterns qui prend un tableau 2D carré d'entiers (matrix) en entrée et affiche les motifs suivants :

  1. Diagonale principale : Affichez tous les éléments où l'indice de ligne est égal à l'indice de colonne.
  2. Anti-diagonale : Affichez tous les éléments où la somme des indices de ligne et de colonne est égale à la taille de la matrice moins 1.
  3. Bordures : Affichez les éléments des bordures supérieure, inférieure, gauche et droite de la matrice.

La sortie devrait ressembler à ceci :

Main Diagonal: 1 6 11 16 
Anti-Diagonal: 4 7 10 13 
Top Border: 1 2 3 4 
Bottom Border: 13 14 15 16 
Left Border: 1 5 9 13 
Right Border: 4 8 12 16

Aide-mémoire

Modèles courants de parcours de tableaux 2D :

Parcours diagonal

Diagonale principale : matrix[i][i] (l'indice de ligne est égal à l'indice de colonne)

Anti-diagonale : matrix[i][size - 1 - i] (la somme des indices de ligne et de colonne est égale à size - 1)

1  2  3
4  5  6
7  8  9

Diagonale principale : 1, 5, 9
Anti-diagonale : 3, 5, 7

Parcours des bordures

Maintenir un indice constant (0 ou size - 1) tout en itérant sur l'autre :

  • Bordure supérieure : indice de ligne = 0, itérer sur les colonnes
  • Bordure inférieure : indice de ligne = size - 1, itérer sur les colonnes
  • Bordure gauche : indice de colonne = 0, itérer sur les lignes
  • Bordure droite : indice de colonne = size - 1, itérer sur les lignes

Essayez vous-même

function printPatterns(matrix) {
    let mainDiagonal = []
    // À FAIRE : Implémenter
    console.log("Main Diagonal:", mainDiagonal.join(" "));
    
    let antiDiagonal = [];
    // À FAIRE : Implémenter
    console.log("Anti-Diagonal:", antiDiagonal.join(" "));
    
    let topBorder = [];
    // À FAIRE : Implémenter
    console.log("Top Border:", topBorder.join(" "));
    
    let bottomBorder = [];
    // À FAIRE : Implémenter
    console.log("Bottom Border:", bottomBorder.join(" "));
    
    let leftBorder = [];
    // À FAIRE : Implémenter
    console.log("Left Border:", leftBorder.join(" "));
    
    let rightBorder = [];
    // À FAIRE : Implémenter
    console.log("Right Border:", rightBorder.join(" "));
}
// N'écrivez rien en dehors de la fonction
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux