En informatiques un tableau est un regroupement de variables de même type mises dans des cases contigües en mémoire centrale. Voici un exemple de tableau de 4 notes en mémoire centrale :
Adresse | Valeur |
---|---|
1500 | 10 |
1501 | 09 |
1502 | 15 |
1503 | 12 |
En programmation, un nom est donné au tableau et on utilise un indice plutôt que les adresses mémoire :
Le tableau notes :
Indice | Valeur |
---|---|
0 | 10 |
1 | 09 |
2 | 15 |
3 | 12 |
Pour accéder à une variable du tableau, il faut :
Un tableau statique a une taille fixe déterminée à la déclaration du tableau.
Un tableau dynamique a une taille qui est définie lors de l'exécution du programme. La taille du tableau est alors définie au moment de l’exécution du programme et en fonction du déroulement de ce programme. Cela permet d'avoir une allocation dynamique de mémoire en fonction des besoins.
Pour déclarer un tableau en C# il faut que
letype[] nomTableau = new letype[taille]; // exemple int[] notes = new int[4];
Un tableau s’utilise comme une variable mais en précisant l’indice de la case concernée.
// exemple notes[0] = 10; notes[1] = 9; notes[2] = 15; notes[3] = 12;
Voici une manière de renseigner le tableau de notes avec les valeurs saisies par l'utilisateur :
// Déclaration du tableau int[] notes = new int[4]; // Saisie des notes for (int i = 0; i < 4; i++) { Console.Write("Entrez une note : "); notes[i] = int.Parse(Console.ReadLine()); }
Exercice 1
Exercice 2
Il est parfois nécessaire de trier les tableaux ou de faire des recherches dans les tableaux.
Pour information, voici les vidéos sur 3 solutions possible de tris, en C# :
La recherche se fait
C’est la méthode de recherche la plus simple et qui fonctionne que le tableau soit trié ou non. Cependant, cette méthode est peu performante dans le cas d’un tableau trié.
Le nombre d’itérations n’est pas fixe.
Exercice 2
On ne s'inquiètera pas du problème lié à une saisie erronée au niveau du type d'une variable.
Exercice 3
En C#, pour obtenir la taille d’un tableau, il faut utiliser Length sur le tableau. Par exemple, si le tableau s’appelle notes, alors notes.Length donne sa taille.
// Syntaxe de la déclaration letype[,] nomTableau = new letype[nbColonnes,nbLignes]; // Syntaxe d’accès à une case nomTableau[indiceColonne, indiceLigne] // Exemple de déclaration int[,] distance = new int[10,20]; /* Affichage de la case d’indices (i, j) * avec i forcément entre 0 et 9 * avec j forcément entre 0 et 19 */ Console.WriteLine(distance[i, j]); // boucles pour remplir chaque case de la matrice for (int x = 0; x < 10; x++) { for (int y = 0; y < 20; y++) { distance[x, y] = int.Parse(Console.ReadLine()); } }
Pour parcourir une matrice complète, il faut 2 boucles imbriquées.