Tableaux multidimensionnels en Objective-C

Le langage de programmation Objective-C permet des tableaux multidimensionnels. Voici la forme générale d'une déclaration de tableau multidimensionnel -

type name[size1][size2]...[sizeN];

Par exemple, la déclaration suivante crée un tableau d'entiers en trois dimensions 5, 10, 4 -

int threedim[5][10][4];

Tableaux bidimensionnels

La forme la plus simple du tableau multidimensionnel est le tableau à deux dimensions. Un tableau à deux dimensions est, par essence, une liste de tableaux à une dimension. Pour déclarer un tableau d'entiers à deux dimensions de taille x, y, vous écririez quelque chose comme suit -

type arrayName [ x ][ y ];

type peut être n'importe quel type de données Objective-C valide et arrayNamesera un identifiant Objective-C valide. Un tableau à deux dimensions peut être considéré comme un tableau, qui aura x nombre de lignes et y nombre de colonnes. Un tableau à 2 dimensionsa, qui contient trois lignes et quatre colonnes peut être affiché comme ci-dessous -

Ainsi, chaque élément du tableau a est identifié par un nom d'élément de la forme a[ i ][ j ], où a est le nom du tableau, et i et j sont les indices qui identifient de manière unique chaque élément dans a.

Initialisation de tableaux bidimensionnels

Les tableaux multidimensionnels peuvent être initialisés en spécifiant des valeurs entre crochets pour chaque ligne. Voici un tableau avec 3 lignes et chaque ligne a 4 colonnes.

int a[3][4] = {  
   {0, 1, 2, 3} ,   /*  initializers for row indexed by 0 */
   {4, 5, 6, 7} ,   /*  initializers for row indexed by 1 */
   {8, 9, 10, 11}   /*  initializers for row indexed by 2 */
};

Les accolades imbriquées, qui indiquent la ligne voulue, sont facultatives. L'initialisation suivante est équivalente à l'exemple précédent -

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

Accès aux éléments de matrice bidimensionnelle

Un élément d'un tableau à deux dimensions est accessible en utilisant les indices, c'est-à-dire l'index de ligne et l'index de colonne du tableau. Par exemple -

int val = a[2][3];

L'instruction ci-dessus prendra le 4ème élément de la 3ème ligne du tableau. Vous pouvez le vérifier dans le diagramme ci-dessus. Vérifions ci-dessous le programme où nous avons utilisé une boucle imbriquée pour gérer un tableau à deux dimensions -

#import <Foundation/Foundation.h>
 
int main () {
   
   /* an array with 5 rows and 2 columns*/
   int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
   int i, j;
 
   /* output each array element's value */
   for ( i = 0; i < 5; i++ ) {
      for ( j = 0; j < 2; j++ ) {
         NSLog(@"a[%d][%d] = %d\n", i,j, a[i][j] );
      }
   }
   
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

2013-09-14 01:28:20.458 demo[32018] a[0][0] = 0
2013-09-14 01:28:20.458 demo[32018] a[0][1] = 0
2013-09-14 01:28:20.458 demo[32018] a[1][0] = 1
2013-09-14 01:28:20.458 demo[32018] a[1][1] = 2
2013-09-14 01:28:20.458 demo[32018] a[2][0] = 2
2013-09-14 01:28:20.458 demo[32018] a[2][1] = 4
2013-09-14 01:28:20.458 demo[32018] a[3][0] = 3
2013-09-14 01:28:20.458 demo[32018] a[3][1] = 6
2013-09-14 01:28:20.458 demo[32018] a[4][0] = 4
2013-09-14 01:28:20.458 demo[32018] a[4][1] = 8

Comme expliqué ci-dessus, vous pouvez avoir des tableaux avec n'importe quel nombre de dimensions, bien qu'il soit probable que la plupart des tableaux que vous créez soient d'une ou deux dimensions.