C-SHARP - 4.2 Exerice : Tableaux avancés

Bonjour a tous et bienvenue dans cette nouvelle video. Dans cette video, nous allons nous exercer sur la notion qu on a vu juste avant. On a vu dans la precedente video, les tableaux a deux dimensions ou multidimensionnel et comment les parcourir gr ces aux boucles imbriquees. Donc je vais maintenant vous donnez un exercice pour mettre en pratique ce qu on vient de voir. L exercice est le suivant : Vous allez demander a l utilisateur d entrer un mot, ensuite le programme va chercher dans le tableau qui se trouve juste la si le mot est present une ou plusieurs fois. Donc qui dit plusieurs fois, dit qu on devra faire un compteur. Je n en dis pas plus a vous de trouver comment faire. Et a la fin du programme, on affichera si le mot est present Le mot que vous avez tape : (ici vous devez recuperer le mot tapez par l utilisateur) a ete trouver n fois dans la liste et ici vous devrez recuperer le nombre de fois que le mot a ete trouver. Et si le mot n est pas present dans le tableau alors on affichera : Le mot que vous avez tape ne se trouve pas dans la liste des mots Donc voila l exercice a faire. Vous devrez creer un tableau en reprenant celui que je vous ai donner ci-dessus. Ensuite vous allez demander a l utilisateur d entrer un nombre. Et votre programme va chercher dans ce tableau si le mot est present 1 2 3 fois ou pas du tout. Si vous bloquez, n hesitez pas a re visionner la video precedente. Mettez la video en pause et on se retrouve juste apr s pour la correction. Nous nous retrouvons maintenant pour la correction de l exercice, j esp re que vous avez reussi sinon soyez attentif a la correction. Tout d abord, il fallait creer un tableau de string contenant 5 lignes et 5 colonnes soit un tableau en 2 dimensions. Donc on lui donne le type var ensuite on lui donne un nom liste_mots ensuite = new string crochets, et la entre les crochets on met le nombre de lignes et de colonnes soit 5,5. Et pour terminer on va directement copier-coller ce tableau. Maintenant qu on a notre tableau, il fallait demander a l utilisateur d entrer un mot.On va d abord faire un Console.WriteLine() pour afficher a l utilisateur d entrer un mot. Ensuite on va interagir avec lui et vous vous rappelez quelle fonction permet d interagir avec l utilisateur ? C est la fonction Console.ReadLine() qu on va stocker dans une variable de type string car la sortie de cette fonction est un string, on lui donner comme nom mot_utilisateur et on va lui affecter la fonction Console.ReadLine(). Maintenant j attire votre attention sur un detail. Vous voyez ce tableau, tous les mots qui s y trouve commence par une minuscule. Si maintenant l utilisateur entre le mot lundi mais avec le L en majuscule, est-ce que notre programme va reussir a tester l egalite entre le mot que l utilisateur va entrer et le mot se trouvant dans le tableau ? Eh bien non. Le compilateur va determiner que ce n est pas le m me mot. Pour eviter cela, on va traiter cette exception en transformant le mot que l utilisateur va entrer en minuscule. Au cours de votre vie de developpeur, il faut penser a chaque cas possible pour que vos programmes soient operationnels peu-importe la situation. Et pour faire a en C#, il existe plusieurs methodes qui permettent de transformer ou convertir une chaine de caract re, ici je vais en citer simplement 2. Mais vous pouvez consulter la documentation de Microsoft pour toutes les autres. Donc tout d abord il y a la methode ToLower(). Cette methode permet comme son nom l indique de baisser soit ici de passer toute notre chaine en minuscule et d en retourner une copie. Et la seconde, elle se nomme ToUpper() Cette methode en revanche, permet de convertir toutes notre chaines en majuscules et de retourner une copie. Ici je parle de retourner une copie, je ne sais pas si vous vous en rappelez mais lorsqu on modifie un string, on ne touche pas a l original mais on cree une copie et on applique la modification ou la transformation sur celle-ci C etait un petit rappel. Donc pour transformer en minuscule ce que l utilisateur va entrer apr s le Console.ReadLine() vous mettez un point puis la methode ToLower() ; Et si l utilisateur entre un mot en majuscule, ou s il met une majuscule au debut au milieu peu importe on aura une copie de ce mot retourner en minuscule dans tous les cas. On va tester pour que vous voyez le resultat. Ici je vais faire une Console.WriteLine() et a l interieur des parenth ses je vais mettre la variable qui contient ce que l utilisateur a entrer donc mot_utilisateur et si je lance le programme. Entrer un nom : Je tape par exemple Maison en majuscule entrer et vous voyez c est en minuscule. Je vais faire un autre test, si je relance je vais maison mais cette fois ci avec le i en majuscule je fais entrer et vous voyez ? Le mot est en minuscule peu importe la situation le resultat sera en minuscule. On peut tester l inverse si vous voulez, ici au lieu de transformer en minuscule je vais transformer en majuscule. Je change et je mets ici ToUpper(). Je lance le programme, je vais ecrire en minuscule et vous voyez ? On a bien notre mot en majuscule.Tr s bien, remettons la fonction ToLower() et passons a la suite. On avait dit dans l enonce de l exercice qu il devait avoir un compteur pour savoir combien de fois le mot que l utisalteur va entrer pouvait tre present dans ce tableau. Donc on va creer une variable de type int qu on va appeler compteur et qu on va initialiser a 0. Et maintenant on entre dans le c ur du programme. On doit parcourir notre tableau. Ici premi re chose, on a un tableau a 2 dimensions donc on pense direct a quoi ? Aux boucles imbriquees car on devra parcourir les lignes ainsi que les colonnes. On va directement creer deux boucles for. Soit on tape for entre parenth ses, on fait un int i = 0 ; ensuite notre condition c est quoi ? Ici c est la boucle qui traite les lignes, il y en a 5 donc on va ecrire que tant que i est inferieur au nombre de lignes, soit 5 alors tu boucles et on termine par l incrementation de i a chaque iteration. Ensuite dans les accolades du for on va mettre notre deuxi me boucle for qui elle, va permettre de parcourir chaque colonne ou chaque element d une ligne. Soit dans les parenth ses, on va faire un int j = 0 qui comme i va nous servir d index. Ensuite la condition, il y a 5 elements par lignes donc tant que j est inferieur a 5 et on termine par l incrementation de j a chaque tour. Maintenant qu on a nos boucles pour parcourir les lignes ainsi que les colonnes. Le but de notre programme, c etait de savoir si le mot que l utilisateur entre est bien dans le tableau et combien il y en a. Donc ou est-ce qu on va effectuer notre test pour savoir si le mot est bien present ? C est dans notre deuxi me boucle for, Pourquoi ? En effet la premi re s occupe juste de passer d une ligne a une autre tandis que la deuxi me boucle for, s occupe de parcourir chaque element d une ligne donc c est bien entre les accolades du deuxi me for que nous allons effectuer notre test. Ici on va donc faire quoi ? On va faire un if que si l element du tableau liste_mots a la ligne selon i et a la colonne selon j est == au mot_utilisateur alors on va incrementer notre compteur. J explique, ici j a chaque iteration de la boucle va s incrementer de 1 soit on va avancer dans les colonnes de notre premi re ligne, et a chaque fois que ce j avance on va recuperer la valeur se trouvant a l emplacement de j et si elle est egal au mot entrer par l utilisateur alors on va incrementer notre compteur qui nous permet de savoir combien de fois est present notre mot dans ce tableau. Et sinon, si ce n est pas egal alors on avance au prochain element jusqu a arriver au dernier de la ligne. Une fois arrive au bout de la ligne, i s incremente donc on passe a la prochaine ligne et on recommence la boucle permettant de parcourir les elements d une ligne. Une fois qu on a tester avec tous les elements de chaque ligne alors notre boucle imbriquee s arr te. Et pour terminer, on avait dit qu il fallait afficher si le mot etait present ou non, si oui alors on affiche combien de fois, le mot est present dans notre tableau. Et qu est ce qui nous permet de savoir s il est present dans notre tableau ? C est le compteur Donc ici la condition a sera que si compteur est strictement superieur a 0 en gros qu il faut minimum 1 alors tu vas nous afficher le mot ainsi que combien de fois il a ete trouver. Soit on fait un If entre les parenth ses on met la condition compteur strictement superieur a 0 et dans les accolades on va mettre notre Console.WriteLine() Entre les parenth ses on va faire un string.Format() guillemets et on va ecrire la phrase suivante : Le mot que vous avez tape : (on met ici accolades 0 pour recuperer la variable qui contient le mot entrer par l utilisateur) a ete trouver ici c est le nombre de fois que le mot a ete trouver nanana fois dans la liste donc ici on va mettre le compteur donc accolades 1 apr s la virgule on met la variable mot_utilisateur virgule la variable compteur. Et pour terminer je fais un else pour traiter si le mot, ne se trouve pas dans ce tableau, ici si le mot n y est pas la condition du if ne sera jamais vraie et le compteur ne s incrementera jamais donc on aura comme valeur 0 et on entrera dans le else car pour entrer dans le if il faut que le compteur soit strictement superieur a 0 soit au minimum 1 Et dans les accolades, on va faire un Console.WriteLine permettant d afficher la phrase suivante Le mot que vous avez tape ne se trouve pas dans la liste des mots On va maintenant tester si tout fonctionne correctement. On lance le programme. Entre un nom : Je vais taper jour qui se trouve plusieurs fois dans notre tableau, j entre et il nous affiche Le mot que vous avez tape : jour a ete trouver 2 fois dans la liste. Si on regarde dans notre tableau, on a bien 2 fois jour je vais tester avec un autre mot cette-fois en masjucule je vais prendre lundi. Je relance le programme entrer un nom je tape les 3 premi res lettres de Lundi en majuscule j entre et vous voyez ? il a bien trouve malgre que j ai tape les 3 premi res lettres en majuscule gr ce au ToLower qu on a mis ici. Je vais le retirer pour que vous voyez Je relance le programme je refais la m me chose et cette fois-ci vous voyez, il ne le trouve pas car lundi en minuscule et Lundi avec des majuscules sont differents. Je vais remettre la methode ToLower pour faire un dernier test. Pour terminer, je vais tester avec un mot qui n est pas dans le tableau, je lance le programme et je vais taper maison j entre et vous voyez ? On a bien affiche Le mot que vous avez tape ne se trouve pas dans la liste des mots Donc notre programme g re bien le cas o le mot ne se trouve pas dans le tableau. Donc voila n hesitez pas a refaire l exercice si vous n avez pas reussi. En tout cas j esp re que cette video, vous a plu et que tout a ete clair pour vous. Je vous dis a la prochaine dans une nouvelle video.