Introduction aux tableaux 2D en C

Un tableau est un groupe d'éléments avec le même type de données (homogène). Il est également appelé type de données dérivé. Si nous considérons un type de données primitif et attribuons une valeur comme indiqué ci-dessous,

Et maintenant, si nous voulons stocker une nouvelle valeur dans la variable a, la nouvelle valeur remplace l'ancienne valeur. En utilisant une variable primitive, nous ne pouvons stocker qu'une seule valeur à la fois, nous ne pouvons pas stocker plusieurs valeurs.

Pour stocker plus d'un élément dans une seule variable comme les notes des étudiants, les identifiants des employés, les numéros mobiles avec une grande quantité de données, nous devons créer des centaines de variables uniques, ce qui est une tâche très complexe. C'est pourquoi le concept d'Arrays a été introduit.

Concepts dans les tableaux 2D en C

Nous pouvons définir des tableaux dans

  • Unidimensionnel
  • Double dimension

Et ainsi de suite jusqu'à N-Dimensional en fonction de l'exigence. Mais ici, nous allons traiter des tableaux 2D. Comme son nom l'indique, les tableaux 2D peuvent être une représentation matricielle de données, qui sont créées pour implémenter une structure de données de base de données relationnelle et peuvent être stockées sous forme de tableaux. Il permet de conserver facilement les données en masse qui peuvent être transmises à un nombre quelconque de fonctions en fonction de l'exigence. Les données de ces tableaux sont accessibles via les ID de ligne et de colonne.

Comment les définir et les mettre en œuvre? Où pouvons-nous les utiliser? Pour aller plus loin, comprenons ces concepts.

En C, les tableaux dimensionnels peuvent être déclarés comme suit:

Syntaxe

Donc, de la même manière, nous pouvons déclarer le tableau 2D comme:

La signification de la représentation ci-dessus peut être comprise comme:

  1. La mémoire allouée à la variable b est de type de données int.
  2. Les données sont représentées sous la forme de 2 lignes et 3 colonnes.


Les données à l'intérieur du tableau sont accessibles via la représentation ci-dessus. Dans la représentation de tableaux 2D, le premier crochet carré représente le nombre de lignes et le second le nombre de colonnes. La représentation d'index du tableau pour le premier élément commence toujours par zéro et se termine par size-1. La variable tableau (ici b) contient toujours l'adresse de base du bloc de mémoire et est appelée variable de pointeur interne.

Ainsi, par exemple, si le nombre de lignes est de 3, alors la représentation d'index pour accéder aux données dans les lignes sera 0, 1 et 2. La même logique s'applique également aux index de colonne. Pour la représentation ci-dessus, pour obtenir les données de la 2 ème ligne 3 ème colonne, on peut accéder par b (1) (2).

Initialisation des tableaux

Nous avons deux méthodes différentes pour initialiser les valeurs en C. Les méthodes ne diffèrent que syntaxiquement.

Ci-dessous est l'un d'eux.

Une autre façon d'initialiser est la suivante:

Généralement, la première méthode d'initialisation est préférée car nous pouvons clairement comprendre et visualiser les lignes et les colonnes des tableaux 2D en C.

Voici l'exemple de la représentation graphique des éléments et leur adresse pour le tableau b.

Les éléments d'un tableau sont généralement stockés dans des emplacements de mémoire consécutifs en fonction du type de données des éléments.

Insertion d'éléments dans des tableaux 2D

Pour insérer des éléments dans des tableaux 2D, nous devons insérer les données dans les lignes et les colonnes. Donc, pour cela, nous utilisons le concept de boucles. Dans le processus ci-dessus pour initialiser les données dans un tableau, nous avions prédéfini les valeurs.

Ici, les éléments peuvent être insérés dynamiquement par l'utilisateur, conformément aux exigences. Voici un exemple de code pour insérer les éléments.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
)

Comme observé dans le code:

  1. Tout d'abord, nous déclarons la variable de tableau et les dimensions du tableau avec le nombre de lignes et de colonnes.
  2. Nous déclarons ensuite deux variables pour itérer sur les éléments du tableau.
  3. Ensuite, pour les boucles sont utilisées. L'extérieur pour la boucle est pour l'itération des lignes et la boucle intérieure est pour les colonnes.
  4. La fonction Scanf est utilisée pour lire les données lors de la saisie, puis placer la valeur insérée à ces positions de i et j.

Dans l'exemple ci-dessus, nous avons inséré les données dans une matrice ayant 2 lignes et 3 colonnes. Les résultats suivants peuvent être obtenus comme suit:

Comme nous n'avons pas utilisé la fonction printf pour afficher la sortie, le programme écrit n'a lu que les valeurs saisies par l'utilisateur. Après avoir écrit la fonction d'impression (en utilisant pour les boucles), la sortie sera affichée comme:

Mettre à jour les éléments des tableaux 2D

La mise à jour des éléments d'un tableau peut être effectuée en spécifiant un élément particulier à remplacer ou en identifiant une position où le remplacement doit être effectué. Pour la mise à jour, nous avons généralement besoin des détails suivants.

  1. Éléments d'un tableau
  2. Position / élément, où il doit être inséré
  3. La valeur à insérer.

Pour mettre à jour les données d'un tableau via les détails de l'élément, nous devons d'abord rechercher cet élément dans le tableau, comprendre sa position, puis remplacer l'ancien élément par le nouvel élément.

Ici, nous avons donné ci-dessous deux exemples de mise à jour de l'élément d'un tableau 2D.

Tout d'abord, passons par un exemple où la position de l'élément à mettre à jour est déjà connue.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
b(0)(2)=10;
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
printf("\n");
)
return 0;
)

Dans le programme ci-dessus, l'élément de la 1ère ligne et de la 3ème colonne est sélectionné et la valeur des données dans cette position a été mise à jour.

Les résultats ci-dessus sont les suivants:

Dans le deuxième exemple, nous allons montrer comment la position de l'élément peut être prise dynamiquement comme une valeur entrée par l'utilisateur et mettre à jour la valeur de l'élément à cette position particulière.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
printf("Enter the value of row and coulmn number :");
scanf("%d %d", &i, &j);
printf("Enter the number you want to update with: ");
scanf("%d", &num);
b(i)(j)=num;
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
printf("\n");
)
return 0;
)

Ici, nous avons utilisé la fonction scanf pour lire la valeur donnée par l'utilisateur selon son choix pour la position d'un élément en fonction des numéros de ligne et de colonne.

La sortie est la suivante:

Comme exercice, pouvez-vous essayer d'écrire un programme en mettant à jour toute la ligne de la matrice avec des valeurs saisies par l'utilisateur?

Maintenant, comme nous le savons, dans le tableau 2D, nous déclarons la taille du tableau au début lui-même. Nous connaissons la taille du tableau, mais que se passe-t-il si l'utilisateur donne un numéro de ligne et de colonne aléatoire en dehors de la taille du tableau?

Notez que comme nous n'avons pas écrit de condition if / else ou de blocs try / catch, la sortie de la matrice ne change pas. Cependant, nous pouvons écrire le code en utilisant les conditions mentionnées ci-dessus pour afficher les erreurs dans de tels cas.

Suppression d'éléments dans des tableaux 2D

Après les concepts d'insertion et de mise à jour des données à l'intérieur du tableau, voyons maintenant comment supprimer une ligne entière du tableau.

Nous avons écrit un programme dans un format simple afin que le concept des différentes opérations dans un tableau 2D puisse être compris facilement.

#include
int main()
(
int b(2)(3), i, j, num, x;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
printf("Enter the value of row number :");
scanf("%d", &x);
for(i=0;i<2;i++)
(
if(i==x)
(
for(j=0;j<3;j++)
(
if((i+1)<2)
(
printf("\t%d", b(i+1)(j));
)
)
i++;)
else
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
)
printf("\n");
)
)

Les étapes suivies sont les suivantes:

  1. A pris les valeurs d'un tableau dynamiquement
  2. A demandé à l'utilisateur de saisir le numéro (index) de la ligne à supprimer.
  3. En utilisant pour l'itération de boucle, nous comparons si le numéro de ligne et le numéro d'entrée utilisateur correspondent ou non.
  4. S'ils correspondent et si le numéro de ligne est inférieur à la taille d'un tableau, nous imprimons la ligne suivante. Sinon, nous imprimons la ligne telle quelle.

La sortie est la suivante:

Et si je donne le numéro de ligne en dehors de la limite du tableau?

Il ne trouvera pas la ligne à supprimer et quitter le programme en imprimant l'ensemble du tableau.

Comme nous le savons déjà, nous pouvons même déclarer dynamiquement les valeurs des numéros de ligne et de colonne et écrire le programme en conséquence.

Cela ne semble-t-il pas simple et facile à apprendre?

À titre d'exercice, pouvez-vous essayer de supprimer un élément particulier pour le tableau 2D maintenant?

Conclusion

Dans cette section, nous avons appris les opérations de base sur des tableaux bidimensionnels. Ces tableaux 2D sont utiles en temps réel avec les opérations matricielles et de nombreux calculs mathématiques.

Les tableaux peuvent même être utilisés pour afficher les calendriers, les emplacements du parking et nous pouvons même avoir un jeu d'échecs.

De nombreuses autres structures de données comme les listes liées, les files d'attente, les graphiques et les arbres doivent utiliser ce concept de tableaux 2D comme condition de base pour stocker et accéder aux emplacements des différents éléments. Essayez de résoudre les opérations de base des tableaux 2D et amusez-vous à apprendre C.

Articles recommandés

Ceci est un guide des tableaux 2D en C. Ici, nous discutons de l'introduction, l'initialisation des tableaux, l'insertion, la mise à jour, la suppression d'éléments dans un tableau 2D. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Tableaux en R
  2. Avantages de la baie
  3. Tableaux en C ++
  4. Tableaux en JavaScript
  5. Exemples de tableaux en C #
  6. Tableaux en PHP