Tirage au sort par attribution de numero

Résolu
bereent Messages postés 5 Date d'inscription vendredi 1 avril 2022 Statut Membre Dernière intervention 2 avril 2022 - 1 avril 2022 à 15:17
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 2 avril 2022 à 23:47
bonjour
Dans le cadre d'une activité associative nous voulons faire un sorte de tirage au sort avec un liste de noms auxquels ont attribut des numéro de manière aléatoire.

disons on a un textbox qui au lancement initialise un fichier txt qui contient un liste de nom et ensuite ont a un bouton "tirage"
ce que l'ont voudrais c'est que lorsqu’on clique à chaque fois sur le bouton tirage un numéro soit attribué de manière aléatoire a chaque ligne de nom

ont est sur vb.net application winform
merci
A voir également:

9 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
2 avril 2022 à 23:47
si je décide de changer de métier pour devenir développeur/analyste-programmeur essayerai de suivre peu être


Non pour devenir analyste programmeur, il faut faire une école d’ingénieur.
Mes conseils sont pour les autodidactes qui veulent apprendre à coder correctement.
1
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
1 avril 2022 à 15:43
Bonjour

Que vient faire le textbox là dedans?

Quand tu dis
ce que l'ont voudrais c'est que lorsqu’on clique à chaque fois sur le bouton tirage un numéro soit attribué de manière aléatoire a chaque ligne de nom
cela veut il dire
  • qu’à chaque tirage tous les noms ont un numéro, et tout change à chaque fois?
  • qu’au premier tirage on attribue un numéro au premier nom, puis au second tirage on attribue un numéro au second nom etc… ?


Un même numéro peut-il être attribuer plusieurs fois?

S’il y a 10 personnes, c’est forcément de 1 à 10 ou c’est (par exemple) de 1 à 1000 quelque soit le nombre de personnes ?

Même s’il ne s’agit pas d’un exercice, je te conseille la lecture de cet article https://www.commentcamarche.net/faq/10925-demander-de-l-aide-pour-vos-exercices-sur-ccm
0
bereent Messages postés 5 Date d'inscription vendredi 1 avril 2022 Statut Membre Dernière intervention 2 avril 2022
1 avril 2022 à 16:35
je vais essayer d’être plus explicite

en fait les numéro sont des stand ainsi si on à 100 noms on doit avoir 100 stand de manière a avoir pour 100 noms

jean phillipe 12
pierre 20
aurélie 18
abel 45
claire 1
ainsi de suite....

pour les questions posés

on ne fait qu'un tirage à la fois mais ont voudrais bien que cela change (les numéros attribués) quand on veut refaire un autre tirage par exemple

non un numéro ne peut être attribué plusieurs fois (un numéro unique pour chaque personne)

ce n'est pas un exercice on faisait manuellement ce tirage avec des jetons ont essai un peu d"évoluer

ce qu'on a pu faire actuellement c’est avec un textbox pouvoir afficher la liste des noms dont on veut attribuer un numéro(stand)
s'il y a autre chose plus approprié qu'un textbox on est preneur
merci
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
1 avril 2022 à 16:41
Oui, il y a bien plus approprié qu’un tetxbox

J’avais bien compris qu’il ne s’agit pas d’un exercice mais malgré tout, il y a des points dans cet article qui pourrait t’être applicables.
Je t’invite donc à le lire.
Et vu ta question sur la pertinence du textbox celui-ci aussi https://codes-sources.commentcamarche.net/forum/affich-10107769-message-a-tous-les-debutants-souvent-autodidactes#p10107769
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bereent Messages postés 5 Date d'inscription vendredi 1 avril 2022 Statut Membre Dernière intervention 2 avril 2022
1 avril 2022 à 18:03
merci pour la peine que tu t'est donné en écrivant ces deux réponses
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
1 avril 2022 à 18:44
Bon je crois que tu n'as pas compris mon intention

les 2 points qui pourraient te concerner sont

  • Présentez le travail déjà tenté ou expliquez les réflexions menées, cela donnera aux personnes qui essayerons de vous aider une base pour vous corriger ou vous réorienter. Mais aussi cela évitera d'obtenir une réponse utilisant des outils ou des concepts que vous n'auriez pas encore appris et donc que cette réponse ne soit pas utile, voire apporte encore plus de confusion.
  • Si votre demande concerne la programmation, postez votre code en utilisant la coloration syntaxique. Si un message d'erreur apparait, recopiez-le en intégralité, précisez la ligne où il apparait et le contenu des variables.


0
bereent Messages postés 5 Date d'inscription vendredi 1 avril 2022 Statut Membre Dernière intervention 2 avril 2022
1 avril 2022 à 21:01
voila ou j'en suis actuellement en cliquant sur le bouton tirage je parviens uniquement à faire sortir les noms un à un de manière aléatoire

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'declaration de la random
        Dim rnd As New Random
        'chemin d'accés du fichier source
        Dim chemin As String = "e:\fichiernoms.txt"
        ' le lecteur
        Dim sr As IO.StreamReader
        'declarartion des strings
        Dim line As String
        Dim list As New List(Of String)

        If File.Exists(chemin) = True Then
            sr = New IO.StreamReader(chemin)
            'boucle pour le tirage
            Do
                line = sr.ReadLine()
                list.Add(line)
            Loop Until line Is Nothing
            sr.Close()
            TextBox1.Text = list(rnd.Next(100))
        End If

0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
1 avril 2022 à 22:19
Alors un streamreader pour un fichier texte c'est s'embêter pour rien.
La classe File (que tu utilises déjà) fait très bien le job, notamment avec sa méthode ReadAllLines.

Et à faire comme tu fais, il y aura des doublons, pas forcément à chaque fois mais ça va arriver.
Et en plus, comme Rnd n'est pas vraiment aléatoire (ni vraiment du VB.Net d'ailleurs) il est aussi possible que tu aies plusieurs fois les mêmes séries.

Ce que je ferais à ta place, c'est d'abord d'écrire une petite classe avec comme propriétés au moins le nom et le numéro, on va l'appeler MaClasse pour cette explication.

Ensuite avec File on obtient un tableau de tous les noms.
On mélange ce tableau (ça on verra après)

Une fois mélangé, on le lit dans l'ordre avec for et on alimente une liste de MaClasse avec chaque nom et i (si on numérote de 0 à n-1) ou i +1 (si on numérote de 1 à n).

Une fois la liste terminée, on la binde sur un datagridview.

Si tu as compris ce que je viens de t'expliquer, on va parler du mélange.
Si tu n'as pas compris, je t'invite à nouveau à lire le second article que je t'ai proposé dans le message 3.
Et de revenir ici dans 3 ou 4 jours après avoir lu le cours de Tahé.

0
bereent Messages postés 5 Date d'inscription vendredi 1 avril 2022 Statut Membre Dernière intervention 2 avril 2022
2 avril 2022 à 15:29
Ont a finalement trouvé 2 solutions à notre problème :)

merci une dernière fois pour le temps que tu passe à donner tes conseils qui un jours si je décide de changer de métier pour devenir développeur/analyste-programmeur essayerai de suivre peu être
0
Rejoignez-nous