Outils pour utilisateurs

Outils du site


bloc1:fichesavoirstableaux1

Fiche savoirs sur les tableaux en C#

Présentation

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 :

AdresseValeur
150010
150109
150215
150312

En programmation, un nom est donné au tableau et on utilise un indice plutôt que les adresses mémoire :

Le tableau notes :

IndiceValeur
010
109
215
312

Pour accéder à une variable du tableau, il faut :

  • utiliser le nom du tableau ;
  • suivi d'un indice de case.

Tableau statique et tableau dynamique

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.

Déclarer un tableau

Pour déclarer un tableau en C# il faut que

  • le nombre de case soit fixe ;
  • et définir dès le départ le nombre de cases ;
  • précisez le type des données.
letype[] nomTableau = new letype[taille];
// exemple
int[] notes = new int[4];

Utiliser un tableau statique de données

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

  • Créez un nouveau projet TableauExercice1.
  • Le programme doit permettre de saisir 5 températures entières entre -20 et +40 (sans contrôler la saisie) ;
  • Le programme doit ensuite afficher combien de températures sont négatives et combien de températires sont positives

Exercice 2

  • Documentez-vous sur la gestion de tableau dynamique en C#
  • Créez un nouveau projet TableauExercice2.
  • Reprenez le code de l'exercice 1 et utilisez un tableau dynamique en lieu et place du tableau statique

Rechercher dans un tableau

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# :

Recherche séquentielle dans un tableau non trié

La recherche se fait

  • à partir de la première case du tableau,
  • en comparant chaque case avec la valeur cherchée,
  • et la recherche s’arrête dès que la valeur est trouvée, ou en fin de tableau si la valeur n’est pas présente.

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.

  • au minimum : 1 fois (si la valeur se trouve dans la 1re case)
  • au maximum : n fois (si la valeur n’est pas trouvée)

Exercice 2

  • Créez un nouveau projet TableauExercice2.
  • Le programme doit permettre de saisir un tableau de températures de n cases (il faut saisir la taille du tableau au préalable) puis de saisir une valeur à chercher.
  • La recherche se fait séquentiellement.
  • Un message doit préciser si la valeur a été trouvée ou non.
  • Dans le cas où elle a été trouvée, il faut préciser la position dans le vecteur.

On ne s'inquiètera pas du problème lié à une saisie erronée au niveau du type d'une variable.

Exercice 3

  • Créez une nouveau projet à partir de ce dépôt Git https://github.com/ctecher/TableauExercice3.git
  • Le programme doit permettre de saisir le nombre de notes à gérer ;
  • Puis vous permettre des saisir les notes en les rangeant dans un tableau à une dimension pouvant contenir le nombre de notes voulus.
  • Le programme doit alors calculer la moyenne des notes et l'afficher :
    • sans faire appel à une fonction ;
    • puis en faisant appel à une fonction qui reçoit en paramètre le tableau de notes et qui retourne la moyenne.

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.

Les tableaux à deux dimensions

  • Les tableaux qui ont été présentés étaient à une dimension.
  • Il est possible de déclarer des tableaux à plusieurs dimensions.
  • Les tableaux à 2 dimensions peuvent aussi être appelés matrices.

Déclaration et utilisation d'un tableau à 2 dimensions

// 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.

bloc1/fichesavoirstableaux1.txt · Dernière modification: 2023/11/12 22:08 de techer.charles_educ-valadon-limoges.fr