L'essentiel du langage C

Rechercher une valeur dans un tableau

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Denis Réant vous propose ici de rechercher une valeur dans un tableau. Vous allez le faire soit de façon manuelle, soit en utilisant la fonction lfind.
06:36

Transcription

Je vais vous apprendre à retrouver un élément à l'intérieur d'un tableau ainsi que de trouver simplement le nombre d'éléments qui constituent un tableau. Alors pour cela, je vais créer un tableau constitué d'éléments de type float avec comme grandeur nombre d'éléments, nombre d'éléments que j'ai défini ici avec une directive préprocesseur Je l'ai fait exprès de façon à un peu introduire en fait la directive define qui fait simplement que le "20" qui est ici va être remplacé par le compilateur par nombre_element Donc float tableau 20 éléments et puis, je vais rentrer 20 éléments, vous voyez, de façon un peu aléatoire, sans rien chercher, avec des entiers et des flottants bien évidemment ! Nous avons un int element_trouve qui va me servir en fait de fanion, enfin, flag en anglais, c'est souvent le mot utilisé. Puis, index_tableau un float valeur_entree parce qu'il va bien falloir que l'utilisateur fasse une saisie pour savoir si ce qu'il recherche dans le tableau existe bien Et puis, int nombre_element_tableau Donc tout d'abord, comment faire pour trouver le nombre d'éléments constituant un tableau ? Vous avez deux méthodes, je commence par la plus simple. C'est celle où vous connaissez directement la taille du tableau. Ce n'est pas juste. Il suffit de faire un printf, vous mettez "%d" et vous mettez nombre_element et là, on n'en parle plus. Là où c'est plus intéressant, c'est lorsque vous ne connaissez pas la taille du tableau. Donc vous ne connaissez pas le nombre d'éléments qui constituent le tableau. Attention ! Je n'ai pas dit le nombre d'octets. Si c'était le nombre d'octets, on fait seizeof tableau, on n'en parle plus, on a le nombre d'octets. Là, ce n'est pas le cas. Donc, il y a une petite manip à effectuer. Vous allez créer dans votre variable et vous allez mettre seizeof (tableau) donc l'intégralité du tableau que vous avez divisé par seizeof, un élément de tableau, Par exemple, l'élément numéro 0. À partir de là, vous allez faire la division et vous allez savoir que vu qu'à l'intérieur d'un tableau, tous les éléments sont identiques, vous allez connaître le nombre d'éléments qui constituent votre tableau. Vérifions tout de suite ! Par la première méthode avec mon seizeof, la taille est de [20], pas de problème puisque nombre_element ici, je retrouve là et je viens l'inscrire ici Et après, si je triche, forcément, la taille du tableau d’éléments de type float connus donc là je n'ai juste que nombre_element à mettre et c'est terminé ! Voilà pour cette première partie. Maintenant nous allons mettre ceci en commentaire Shift+Ctrl+C pour commentaire Et là, nous allons faire la recherche Donc, nous allons décommenter le reste du programme Shift+Ctrl+X Et là, qu'allons-nous faire ? Bon, mettre un petit titre. Ok, pas de soucis ! Demander à l'utilisateur de rentrer sa valeur donc nous avons fait un scanf Alors, on a mis les flottants, vu que justement on ne sait pas si l'utilisateur veut absolument retrouver un élément parmi les flottants ou parmi simplement les entiers donc pour cela on met flottant et on va stocker la valeur à l'adresse valeur_entree. Et là, j'ai créé une boucle, tant que index_tableau et que element_trouve en fait est à 0 eh bien, je continue ma recherche. Dès que j'ai retrouvé ma recherche, donc if(tableau[index_tableau]==valeur_entrée), valeur recherchée par la personne, element_trouve=1, ce qui va me permettre de changer, en fait, ma condition qui est ici dans le While, ce qui fait que cela va automatiquement arrêter ma boucle while Si je n'ai pas trouvé un index, au premier index, par exemple, ma valeur, il faut que je passe au suivant. Ok donc, dans ce cas-là, je vais incrémenter puis, je compare à la valeur max pour dire de ne pas dépasser Et sinon, j'inscris quand même que j'ai scanné la case au cours de l'index et que je n'ai pas trouvé l'élément. Alors ici, il a un élément, par exemple, facile à retrouver ; c'est 458 que je retiens 458 c'est parfait. Lançons un peu notre programme pour voir ce que ça donne. Ah, petite erreur. Que s'est-il passé ? Alors donc, regardons un petit peu. Ah ! Ouh la ! Attention, vous voyez, j'ai commenté trop vite. J'ai commenté ici. Eh voilà, normalement, tout va rentrer dans l'ordre Voilà, ça y est ! Donc, entrez une valeur pour savoir si elle existe. Donc, je vais retenir 458. Mais bon, d'abord, je vais mettre un truc qui… non, ça, c'est sûr, il n'y est pas. Et la voilà. Donc, j'ai la liste. Bon bah, voilà, il a scanné la case numéro [1] [2] [3] jusqu'à [19] Et à la fin, il n'a rien trouvé. Très bien. Maintenant, recommençons avec une valeur que je connais 458 Il scanne et arrivée à la case numéro [4], la valeur est trouvée à la case numéro [4]. Donc, elle existe. On pourrait très bien après améliorer ce programme en disant voilà... Et la valeur 458 que vous avez entrée est bien 458. Ça ne servirait pas à grand-chose, vu que l'utilisateur, c'est ça qu'il cherche. Forcément. Lui, il veut savoir si simplement, elle est dans la base. Et en effet, elle est dans la base. On regarde. Et nous voyons ici 458 Et elle est bien au 0, 1, 2, 3, 4 Donc cinquième position, quatrième élément du tableau.

L'essentiel du langage C

Comprenez les concepts de base du langage C. Développez de simples applications en mode console, afin de comprendre les rouages d’un des langages les plus utilisés au monde.

7h51 (98 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :12 janv. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !