Fonction random visual basic
Fermé
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
-
2 déc. 2008 à 15:48
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 2 déc. 2008 à 16:42
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 2 déc. 2008 à 16:42
A voir également:
- Fonction random visual basic
- Visual basic - Télécharger - Langages
- Fonction si et - Guide
- Microsoft 365 basic - Accueil - Microsoft Office
- Microsoft visual c++ runtime - Guide
- Visual petanque - Télécharger - Sport
5 réponses
blux
Messages postés
26548
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
27 décembre 2024
3 319
2 déc. 2008 à 15:55
2 déc. 2008 à 15:55
Salut,
Le hic est que de temps en temps j'ai deux questions identiques...
Ben justement, dans ce cas-là, tu es victime du 'vrai' hasard...
Comment appelles-tu ta fonction random ? Fais-tu un 'randomize' avant ?
Le hic est que de temps en temps j'ai deux questions identiques...
Ben justement, dans ce cas-là, tu es victime du 'vrai' hasard...
Comment appelles-tu ta fonction random ? Fais-tu un 'randomize' avant ?
yan777
Messages postés
1
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
2 décembre 2008
2 déc. 2008 à 15:57
2 déc. 2008 à 15:57
Salut,
Pour être sûr de ne pas avoir 2 fois la même question par partie, tu peux rajouter une colonne à ta base donnée qui te servira à cocher les questions au fûr et à mesure qu'elles sont posées. Avec une formule IF avec Random avant chaque nouvelle question tu peux faire en sorte de ne jamais selectionner les mêmes. Ensuite il n'y a plus qu'à vider cette colonne avant chaque fermeture du fichier pour réinitialiser tes questions.
Pour être sûr de ne pas avoir 2 fois la même question par partie, tu peux rajouter une colonne à ta base donnée qui te servira à cocher les questions au fûr et à mesure qu'elles sont posées. Avec une formule IF avec Random avant chaque nouvelle question tu peux faire en sorte de ne jamais selectionner les mêmes. Ensuite il n'y a plus qu'à vider cette colonne avant chaque fermeture du fichier pour réinitialiser tes questions.
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 déc. 2008 à 16:03
2 déc. 2008 à 16:03
Voici l'extrait de mon code :
'Création de mon tableau de label
Dim tableau(5) As Label
tableau(0) = Label1
tableau(1) = Label2
tableau(2) = Label3
tableau(3) = Label4
tableau(4) = Label5
'Déclaration de ma fonction random
Dim random As Integer
'J'affiche seulement 5 questions dans des labels
For i = 0 To maxlabel
Randomize()
random = CInt(Int((10 * Rnd()) + 1))
Dim req As OleDbCommand = connexion.CreateCommand()
'NQuestion = NuméroQuestion
req.CommandText = "SELECT NomQuestion FROM Question WHERE NQuestion = " & random
Dim reader As OleDbDataReader = req.ExecuteReader()
If reader.Read() Then
tableau(i).Text = reader.GetString(0)
End If
reader.Close()
Next
'Création de mon tableau de label
Dim tableau(5) As Label
tableau(0) = Label1
tableau(1) = Label2
tableau(2) = Label3
tableau(3) = Label4
tableau(4) = Label5
'Déclaration de ma fonction random
Dim random As Integer
'J'affiche seulement 5 questions dans des labels
For i = 0 To maxlabel
Randomize()
random = CInt(Int((10 * Rnd()) + 1))
Dim req As OleDbCommand = connexion.CreateCommand()
'NQuestion = NuméroQuestion
req.CommandText = "SELECT NomQuestion FROM Question WHERE NQuestion = " & random
Dim reader As OleDbDataReader = req.ExecuteReader()
If reader.Read() Then
tableau(i).Text = reader.GetString(0)
End If
reader.Close()
Next
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
2 déc. 2008 à 16:05
2 déc. 2008 à 16:05
la solutions réside dans le fait d'utiliser toute la grandeur du nombre générée au départ par Rnd
Sur un très grand nombre de choix tu auras des répétitons mais sur un tirage ( 200 par exemple pour un loto ou une tombola)
pas de problème avec cette ligne, regarde le contenu dans le déboggueur et tu comprendras.
NumeroAléatoire = (1000* Rnd) + 1
bien sur après il faut faire un tri du plus petit vers le plus grand ou l'inverse.
A+
Sur un très grand nombre de choix tu auras des répétitons mais sur un tirage ( 200 par exemple pour un loto ou une tombola)
pas de problème avec cette ligne, regarde le contenu dans le déboggueur et tu comprendras.
NumeroAléatoire = (1000* Rnd) + 1
bien sur après il faut faire un tri du plus petit vers le plus grand ou l'inverse.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 déc. 2008 à 16:42
2 déc. 2008 à 16:42
Yan777 ton idée me semble très bonne, le seul problème c'est que la base de donnée sera trop souvent exploité, si
ya 5 personnes sur mon application, la base de données sera ouverte d'inombrable fois...
Merci tout de même pour vos propositions
ya 5 personnes sur mon application, la base de données sera ouverte d'inombrable fois...
Merci tout de même pour vos propositions