Introduction au tableau multidimensionnel en C

Cet article se concentre sur le tableau multidimensionnel en c qui est principalement utilisé en informatique et en analyse de recherche. Généralement, un tableau concentre linéairement une information qui est dite unidimensionnelle. Unidimensionnelle stocke des données uniquement des informations uniques comme regno des étudiants. Dans certaines situations, il est nécessaire de stocker des données dans un format de tableau comprenant des lignes et des colonnes ou de gérer des données complexes. Pour le visualiser, nous avons besoin d'un format matriciel que nous avons appelé tableaux bidimensionnels dans lesquels les arrangements nécessitent des pixels de l'image, des graphiques. Les données sont stockées sous forme de tableau. Les manipulations de tableau sont effectuées en réorganisant un élément à l'aide de fonctions telles que remodeler, presser.

Comment déclarer un tableau multidimensionnel en C?

Syntaxe:

La déclaration générale du tableau multidimensionnel est donnée comme suit:

type name ( size) (size)……. N;

  • Ici, nom du type de données - Il désigne le type d'éléments (entier, flottant).
  • Nom du tableau - Indique le nom attribué au tableau dimensionnel.
  • Taille de ligne - Nombre d'éléments de ligne ex. row-size = 8, alors le tableau a 8 lignes.
  • Taille de colonne - Nombre d'éléments de colonne.

Comment initialiser le tableau multidimensionnel en C?

La taille des tableaux multidimensionnels est prédite en multipliant la taille des différentes dimensions. Et ils stockent les valeurs sous la forme de deux manières, comme ligne principale et colonne principale. Et l'allocation de mémoire valide les propriétés de longueur et de rang.

En C, le tableau multidimensionnel a trois types:

  1. Réseau bidimensionnel
  2. Tableau tridimensionnel
  3. Tableau à quatre dimensions

1. Réseau bidimensionnel

Le tableau bidimensionnel est structuré sous forme de matrices et implémenté à l'aide de lignes et de colonnes, également appelé tableau de tableaux. L'allocation de mémoire se fait en ligne principale et en colonne majeure. Et le format par défaut est Row-Major. Lors de la prise d'un tableau 2D, chaque élément est considéré comme un tableau 1D ou connu pour être une collection d'un tableau 1D. Le tableau bidimensionnel utilise deux pour les boucles ou les boucles imbriquées où les boucles externes s'exécutent de 0 à l'indice initial.

Syntaxe:

type array name ( no. of rows) ( no. of Columns);

Exemple:

int td (4)(3);

ici 4 est le non. de rangées et 3 est le non. de colonnes.

Initialisation d'un tableau bidimensionnel

L'initialisation dans le tableau 2D se fait de plusieurs manières, comme illustré ici.

int m (3)(2) = ((10, 3) (4, 2) (6, 4) (5, 4) (3, 4));
int di (2)(4) = (10, 5, 8, 12, 45, 13, 11, 61);

Ici, nous avons mentionné le non. de lignes et de colonnes dans la case Il est obligatoire d'attribuer le deuxième index pour faire comprendre au compilateur la fin et le début de la ligne. Le tableau ci-dessous montre l'allocation de mémoire de la matrice 2D.

Le nombre d'éléments est déterminé en manipulant un certain nombre de lignes et de colonnes et en multipliant no. de lignes et de colonnes respectivement. par exemple, le no. d'éléments un tableau contient B (-2… 4, -3, 6). Il est calculé par borne inférieure et borne supérieure.

No. of rows= UB-LB +1
=4-(-2) +1 = 4+2+1= 7
No. of columns = UB-LB +1
= 6-(-3) + 1= 11
No. of elements = Rows * columns = 7 * 11 =77 elements

la mise en oeuvre

Cela se fait à l'aide d'implémentations de lignes principales et de colonnes majeures

Row-Major:
La formule de manipulation d'adresse est donnée comme suit:
= B +W ( n(I-1) +(J-1))
Où b- est l'adresse de base et n- le nombre de colonnes pour W octets.
Colonne majeure:
= B +W ( r(j-1) +(i-1))
où r - est le non. de rangées.

Exemples de tableau bidimensionnel

Voici des exemples de tableaux bidimensionnels:

Exemple 1

Chaque élément d'un tableau A (-10.10, 20… 35) nécessite 1 octet de mémoire. Et le tableau tient dans la colonne majeure à l'adresse 400, Trouvez l'emplacement de A (0, 30).

Solution

BA =400, W=1
R = no. of rows -> 10-(-10) +1 = 21
I= -10; J= 20
Address A (0, 30) = 400 + 1((0-(-10) +21(30-20))) =400 +(10+21*10)
=400 +(10+210) = 620

Une opération familière effectuée dans le tableau 2D est l'algèbre des matrices avec m * n matrice de B. Le concept mathématique de la matrice est implémenté de la même manière qu'en programmation.

L'exemple ci-dessous stocke un élément au format matriciel et l'imprime.

Code:

#include
int main ()
(
int a(3)(4), i, j;
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("Enter arr(%d)(%d): ", i, j);
scanf("%d", &a(i)(j));
)
)
printf("\nEntered 2-D array is: \n\n");
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("%3d ", a(i)(j) );
)
printf("\n");
)
return 0;
)

Production:

Exemple # 2

Programme C réalisant la somme de deux matrices.

Code:

#include
int main()
(
int mat(20)(20);
int i, j, r, c;
int s;
printf("Enter number of Rows :");
scanf("%d", &r);
printf("Enter number of Cols :");
scanf("%d", &c);
printf("\nEnter matrix elements :\n");
for(i=0;i< r;i++)
( for(j=0;j< c;j++)
(
printf("Enter the number of inputs (%d, %d) : ", i+1, j+1);
scanf("%d", &mat(i)(j));
)
)
printf("\n");
for(i=0;i< r;i++)
(
s=0;
for(j=0;j< c;j++)
(
printf("%d\t", mat(i)(j));
s+=mat(i)(j);
)
printf("\tSUM : %d", s);
printf("\n");
)
)

Le programme ci-dessus calcule la somme de deux matrices A (20, 20) B (20, 20) à condition qu'elles aient deux matrices identiques. Grâce à la boucle, il faut deux matrices et boucles d'entrée pour accepter la matrice.

Production:

Exemple # 3

Transposition d'une matrice

Échange de lignes et de colonnes pour former une nouvelle matrice qui est connue comme la transposition d'une matrice.

Exemple:

Transposer ensuite donner,

Matrix Transpose à l'aide du programme C

Code:

#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)

Dans le programme ci-dessus Pour lire une matrice, nous en avions utilisé deux pour les boucles et pour imprimer sa transposition, la boucle imbriquée est utilisée pour afficher la sortie. Ici, nous avons utilisé une matrice 3 * 3.

Production:

2. Tableau tridimensionnel

Il est appelé un tableau d'éléments de tableau ou un tableau de matrices. C'est assez bourdonnant mais une fois que vous vous entraînez vers la logique, il est plus facile à mettre en œuvre. et cette baie 3-D nécessite plus de trois dimensions et nécessite le volume de mémoire pour stocker.

Il peut être déclaré comme:

data_type array_name (table name) ( no. of row) ( no. of column) int L(m)(n) (p);

int L (3) (4) (2); Ici, le tableau L peut contenir 24 éléments. Et tous ceux-ci peuvent être initialisés pendant le processus de compilation, mais lorsqu'ils ne sont pas initialisés, ils sont mis dans une valeur poubelle.

L'initialisation peut être effectuée de la même manière qu'un tableau à deux dimensions. Voici un exemple,

int L (2)(3)(4) = (((2, 2, 1, 3), (1, 6, 5, 11), (22, 11, 13, 5)), ((13, 5, 77, 8), (6, 8, 2, 4), (3, 2, 7, 8)));

Exemples de tableau tridimensionnel

Voici quelques exemples du tableau tridimensionnel qui sont donnés ci-dessous:

Exemple 1

Ci-dessous, un exemple simple de programmation C illustrant un tableau tridimensionnel. Cela se fait en utilisant pour une boucle en considérant 3 pour les boucles pour les éléments 3D.

Code:

#include
void main()
(
printf("three dimensional array!\n\n");
int i, j, k, s(2)(1)(2), siz;
siz=2*1*2;
printf("Enter %d elements: \n", siz);
for(i = 0; i < 2; ++i)
(
for (j = 0; j < 1; ++j)
(
for(k = 0; k < 2; ++k )
(
scanf("%d", &s(i)(j)(k));
)
)
)
printf("The stored values are:\n\n");
for(i = 0; i < 2; i++)
(
for (j = 0; j < 1; j++)
(
for(k = 0; k < 2; k++)
(
printf("sample(%d)(%d)(%d) = %d\n", i, j, k, s(i)(j)(k));
)
)
)
)

Production:

Exemple # 2

Un autre exemple d'un tableau 3D pour imprimer automatiquement des éléments.

Code:

#include
int main()
(
int m(2)(3)(2) =
(
( (1, 2), (3, 5), (6, 5) ),
( (8, 3), (8, 7), (9, 11) )
);
for (int i = 0; i <2; ++i)
(
for (int j = 0; j <3; ++j)
(
for (int k = 0; k <2; ++k)
printf("Value at m(%d)(%d)(%d) = %d\n", i, j, k, m(i)(j)(k));
)
)
)
return 0;
)

Production:

3. Tableau à quatre dimensions

Il s'agit d'un tableau de tableau en trois dimensions et il est très difficile de gérer les dimensions. Il est considéré comme un tas de cubes ensemble et applicable aux vecteurs spatiaux.

Déclaration du tableau 4-D:

Tapez le nom du tableau (1) (2) (3) (4) ……. (n) où 1, 2 désigne les dimensions et n implique les nièmes dimensions.

Exemple:

int state (5)(6)(7)(8);

Exemple de tableau à quatre dimensions

Programme C pour implémenter un tableau 4-D.

Code:

#include
int main()
(
int i, j, k, l, s;
int d(2)(2)(2)(2);
s = 2;
d(0)(0)(0)(0) = 4;
d(0)(0)(0)(1) = 3;
d(0)(0)(1)(0) = 2;
d(0)(0)(1)(1) = 6;
d(0)(1)(0)(0) = 6;
d(0)(1)(0)(1) = 8;
d(0)(1)(1)(0) = 1;
d(0)(1)(1)(1) = 2;
d(1)(0)(0)(0) = 6;
d(1)(0)(0)(1) = 9;
d(1)(0)(1)(0) = 5;
d(1)(0)(1)(1) = 1;
d(1)(1)(0)(0) = 9;
d(1)(1)(0)(1) = 7;
d(1)(1)(1)(0) = 5;
d(1)(1)(1)(1) = 7;
for (i = 0; i < s; i++) (
for (j = 0; j < s; j++) (
for (k = 0; k < s; k++) (
for (l = 0; l < s; l++) (
printf("Value of stdio(%d)(%d)(%d)(%d): %d ", i, j, k, l, d(i)(j)(k)(l));
printf("\n");
)
)
)
)
return 0;
)

Production:

Conclusion

À la fin, dans cet article, nous avons discuté des tableaux multidimensionnels et de leurs sous-types dans la programmation C. Et aussi, leur déclaration et l'accès aux éléments dans un format matriciel. Ces techniques sont appliquées dans le concept comme la recherche binaire et l'implémentation du tri. Ici, un index joue un rôle clé dans la mesure où il spécifie un élément dans la structure du tableau.

Articles recommandés

Ceci est un guide du tableau multidimensionnel en C. Ici, nous discutons comment initialiser le tableau multidimensionnel en C avec des exemples. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. Meilleurs compilateurs C
  2. Tableaux 2D en C #
  3. Tableaux 2D en C
  4. Classes de stockage C
  5. C Multiplication de la matrice de programmation
  6. 3 différents types de tableaux en PHP (exemples)
  7. Comment fonctionne Array sous Unix avec la syntaxe?