Tableaux multidimensionnels en C
Salut à toi, futurs programmeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde des tableaux multidimensionnels en C. Ne t'inquiète pas si tu es nouveau dans le monde de la programmation - je serai ton guide amical, et nous aborderons ce sujet pas à pas. À la fin de ce tutoriel, tu seras un pro dans la manipulation de ces structures de données puissantes !
Tableaux multidimensionnels en C
Commençons par les bases. Imagine que tu as un tas de boîtes, et à l'intérieur de chaque boîte, tu as d'autres boîtes. C'est essentiellement ce qu'est un tableau multidimensionnel - une manière d'organiser les données en plusieurs niveaux ou dimensions.
En C, nous pouvons créer des tableaux avec plus d'une dimension. Les types les plus courants sont les tableaux 2D (bi-dimensionnels) et 3D (tri-dimensionnels), mais théoriquement, tu peux avoir autant de dimensions que la mémoire de ton ordinateur le permet !
Voici une manière simple de déclarer un tableau 2D :
int matrix[3][4];
Cela crée un tableau 2D nommé matrix
avec 3 lignes et 4 colonnes. Pense-y comme un grille ou un tableau avec 3 lignes et 4 colonnes.
Tableau bidimensionnel en C
Plongons plus profondément dans les tableaux 2D avec un exemple pratique. Imagine que tu crées un plateau de jeu simple pour le tic-tac-toe :
#include <stdio.h>
int main() {
char board[3][3] = {
{'_', '_', '_'},
{'_', '_', '_'},
{'_', '_', '_'}
};
// Affiche le plateau
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
printf("%c ", board[i][j]);
}
printf("\n");
}
return 0;
}
Dans cet exemple, nous créons un plateau 3x3 pour le tic-tac-toe. Chaque cellule est initialisée avec un underscore '_' pour représenter un espace vide. Nous utilisons des boucles imbriquées pour afficher le plateau.
La boucle externe for(int i = 0; i < 3; i++)
itère à travers chaque ligne, tandis que la boucle interne for(int j = 0; j < 3; j++)
itère à travers chaque colonne de cette ligne.
Tableau tridimensionnel en C
Maintenant, montons d'un cran et explorons les tableaux 3D. Imagine que tu conceps un monde de jeu 3D simple :
#include <stdio.h>
int main() {
int gameWorld[2][3][4] = {
{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}},
{{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}
};
// Affiche le monde du jeu
for(int i = 0; i < 2; i++) {
printf("Niveau %d:\n", i+1);
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 4; k++) {
printf("%2d ", gameWorld[i][j][k]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
Ici, nous créons un tableau 3D gameWorld
avec 2 niveaux, chaque niveau ayant 3 lignes et 4 colonnes. Tu peux penser à cela comme deux grilles 2D empilées les unes sur les autres.
Nous utilisons trois boucles imbriquées pour afficher ce monde 3D. La boucle la plus externe itère à travers chaque niveau, la boucle du milieu à travers chaque ligne d'un niveau, et la boucle la plus interne à travers chaque colonne d'une ligne.
Somme des éléments des lignes d'un tableau multidimensionnel
Maintenant, essayons quelque chose de plus pratique. Calculons la somme de chaque ligne dans un tableau 2D :
#include <stdio.h>
int main() {
int grades[3][4] = {
{85, 92, 78, 88},
{91, 87, 93, 89},
{76, 82, 95, 90}
};
printf("Étudiant Math Science Anglais Histoire Total\n");
printf("------------------------------------------------\n");
for(int i = 0; i < 3; i++) {
int sum = 0;
printf("%7d", i+1);
for(int j = 0; j < 4; j++) {
printf("%8d", grades[i][j]);
sum += grades[i][j];
}
printf("%8d\n", sum);
}
return 0;
}
Dans cet exemple, nous avons un tableau 2D grades
représentant les notes de 3 étudiants en 4 matières. Nous calculons la somme des notes pour chaque étudiant (ligne) et les affichons avec les notes individuelles.
Multiplication de matrices
Pour notre dernier acte, réalisons une multiplication de matrices - une opération courante dans de nombreuses applications scientifiques et ingénierie :
#include <stdio.h>
int main() {
int matA[2][3] = {{1, 2, 3}, {4, 5, 6}};
int matB[3][2] = {{7, 8}, {9, 10}, {11, 12}};
int result[2][2] = {{0, 0}, {0, 0}};
// Réaliser la multiplication de matrices
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
for(int k = 0; k < 3; k++) {
result[i][j] += matA[i][k] * matB[k][j];
}
}
}
// Affiche le résultat
printf("Résultat de la multiplication de matrices:\n");
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
Ici, nous multiplions deux matrices matA
(2x3) et matB
(3x2) pour obtenir une matrice result
(2x2). Les trois boucles imbriquées réalisent la multiplication : les deux boucles extérieures itèrent à travers chaque élément de la matrice de résultat, tandis que la boucle la plus interne calcule la valeur pour cet élément.
Et voilà ! Nous avons couvert les bases des tableaux multidimensionnels en C, des 2D aux 3D, et même abordé quelques applications pratiques. Souviens-toi, la pratique rend parfait, donc n'hésite pas à expérimenter avec ces concepts par toi-même. Bonne programmation !
Credits: Image by storyset