====== Tableau à plusieurs dimensions ====== ===== Définir un tableau à plusieurs dimensions ===== Lorsque l'on définit un tableau (voir : [[javascool:les_tableaux:déclarer_un_tableau|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 : {{ :javascool:les_structures_algorithmique_de_bases:les_types_de_donnees:tableaux:396203.png?300 |}} //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 : [[javascool:les_tableaux:lire_dans_un_tableau|lire dans un tableau]] Cours suivant : [[javascool:les_tableaux:récapitulatif_des_fonctions|récapitulatif des fonctions]] ---- Page créée par QUINQUENEL et corrigée par RASTEL