C-SHARP - 4.2 Exerice : Tableaux avancés

Exercice de mise en pratique sur les tableaux à deux dimensions et les boucles imbriquées vus précédemment. Le programme doit demander un mot à l'utilisateur, parcourir une grille 5×5 et afficher combien de fois ce mot y apparaît, ou indiquer qu'il n'y figure pas.

Énoncé

Si le mot est trouvé : « Le mot que vous avez tapé : [mot] a été trouvé n fois dans la liste ». Sinon : « Le mot que vous avez tapé ne se trouve pas dans la liste des mots. » Indice : un compteur sera nécessaire pour gérer les occurrences multiples.

Correction

On crée le tableau 5×5 de strings (en utilisant var), on demande la saisie via Console.ReadLine() et on stocke le résultat. Astuce essentielle : tous les mots du tableau sont en minuscules. Si l'utilisateur tape « Lundi » ou « LUNDI », la comparaison directe échouera. On applique donc ToLower() sur la saisie pour normaliser :

Console.WriteLine("Entrez un mot :");
string mot_utilisateur = Console.ReadLine().ToLower();
int compteur = 0;

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
    {
        if (liste_mots[i, j] == mot_utilisateur)
        {
            compteur++;
        }
    }
}

if (compteur > 0)
{
    Console.WriteLine(string.Format(
        "Le mot que vous avez tape : {0} a ete trouve {1} fois dans la liste",
        mot_utilisateur, compteur));
}
else
{
    Console.WriteLine("Le mot que vous avez tape ne se trouve pas dans la liste des mots");
}

Les deux boucles for imbriquées parcourent toutes les cases (5 lignes × 5 colonnes). Le test d'égalité se fait dans la boucle interne, qui inspecte chaque colonne d'une ligne donnée. Le compteur est incrémenté à chaque correspondance — un mot peut donc apparaître plusieurs fois et être correctement comptabilisé. À la fin, on choisit entre les deux messages selon la valeur du compteur.

Tests

Avec « jour », deux occurrences trouvées (le tableau d'exemple en contient bien deux). Avec « LUN » en majuscules, grâce à ToLower(), le programme trouve quand même la correspondance. Sans cette transformation, la recherche échouerait. Avec un mot absent comme « maison », le message d'erreur s'affiche correctement. Pensez systématiquement à ToLower() ou ToUpper() dans vos comparaisons pour éviter les surprises liées à la casse — c'est un réflexe à acquérir.