begin process at 2010 02 10 05:42:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Débutants

 > 

Randomize


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Randomize

dimanche 25 novembre 2007 à 19:07:53 | Randomize

Le_Martien

Bonjour a tous,

J'ai crée une petite application pour choisir au hasard 7 chiffres sur un total de 100.

L'application, fonctionne très bien mais je n'arrive pas a faire en sorte que le système ne choisisse qu'une seule fois le nombre.

Par exemple : sur les 100 nombres, j'obtiens 7, 36, 30, 85, 41, 19, 36, et je voudrais obtenir 7 nombres différents.

Mon code est le suivant :

Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Randomize()

Me .TextBox1.Text = CInt (Int((100 * Rnd()) + 1))

Me .TextBox2.Text = CInt (Int((100 * Rnd()) + 1))

Me .TextBox3.Text = CInt (Int((100 * Rnd()) + 1))

Me .TextBox4.Text = CInt (Int((100 * Rnd()) + 1))

Me .TextBox5.Text = CInt (Int((100 * Rnd()) + 1))

Me .TextBox6.Text = CInt (Int((100 * Rnd()) + 1))

Me .TextBox7.Text = CInt (Int((100 * Rnd()) + 1))

End Sub

Si quelqu'un peut m'aider, se serrait gentil.

Merci.

dimanche 25 novembre 2007 à 19:41:01 | Re : Randomize

Exploreur

Membre Club
Salut,

Il serait peut-être intéressant d'utiliser un tableau, je m'explique :

Tu tires un premier nombre que tu insères dans ton tableau, tu tires ton deuxième nombre que tu va comparer avec le premier, si identique, tu retire un nouveau, si pas identique tu l'insères dans ton tableau..Tu tires ton troisième nombre que tu va comparer au deux premier, si identique à l'un ou à l'autre, tu en retires un, sinon tu l'insères dans ton tableau...ainsi dessuite jusqu'au septième...Enfin une idée comme une autre, mais il se peut qu'il y est plus court que ce que je viens de dire...

Regarde ce lien sur les tableaux en .net

A+
Exploreur

 Linux a un noyau, Windows un pépin

 

dimanche 25 novembre 2007 à 19:52:21 | Re : Randomize

jmfmarques

Membre Club
Ben...

mets donc tes nombres possibles dans un tableau (ou mieux encore : dans une lisbox)

A chaque tirage : tire aleatoirement un index du tableau (ou mieux; de la lisbox) , retiens le nombre (article) correspondant et élimine l'article correspondant à cet index.

Il est certain que de cette façon, tu ne risqueras pas de tirer 2 fois le même nombre !
dimanche 25 novembre 2007 à 20:36:33 | Re : Randomize

Elxior

private void Form1_Load(object sender, EventArgs e)
        {
            Random Rdm = new Random();
            Byte?[] nTbl = new Byte?[7];
            Byte iCtn = 0;
            while (nTbl[6] == null)
            {
                bool isInside = false;
                Byte? alByte = (Byte)Rdm.Next(0, 100);
                foreach (Byte? i in nTbl) if (i == alByte) isInside = true;
                if (!isInside) { nTbl[iCtn] = alByte; iCtn++; }
            }
            textBox1.Text = nTbl[0].ToString();
            textBox2.Text = nTbl[1].ToString();
            textBox3.Text = nTbl[2].ToString();
            textBox4.Text = nTbl[3].ToString();
            textBox5.Text = nTbl[4].ToString();
            textBox6.Text = nTbl[5].ToString();
            textBox7.Text = nTbl[6].ToString();
        }

Vers VB.Net (reflector powa, la flemme de traduire) :
PrivateSubForm1_Load(ByValsender As Object, ByVale As EventArgs)
DimRdm As NewRandom
DimnTblAsByte?() = NewByte?(7 - 1) {}
DimiCtnAsByte = 0
Do WhileNotnTbl(6).HasValue
DimisInsideAsBoolean = False
DimalByte As NewByte?(CByte(Rdm.Next(0, 100)))
DimiAsByte?
For EachiInnTbl
If (i = alByte) Then
isInside = True
End If
Next
IfNotisInsideThen
nTbl(iCtn) = alByte
iCtn = CByte((iCtn + 1))
End If
Loop
Me.textBox1.Text = nTbl(0).ToString
Me.textBox2.Text = nTbl(1).ToString
Me.textBox3.Text = nTbl(2).ToString
Me.textBox4.Text = nTbl(3).ToString
Me.textBox5.Text = nTbl(4).ToString
Me.textBox6.Text = nTbl(5).ToString
Me.textBox7.Text = nTbl(6).ToString
End Sub



We can't solve problems by using the same kind of thinking we used when we created them.


Cette discussion est classée dans : text, int, rnd, randomize, cint


Répondre à ce message

Sujets en rapport avec ce message

Randomize et labels [ par Vbsupernul ] Bonjour,Ben voilà, j'ai une boucleIf nbdefois Randomize Timernb1 = Int((Rnd * 20) + 1)nb2 = Int((Rnd * 20) + 1)nb3 = Int((Rnd * 20) + 1)Label4.Caption Randomize et compagnie [ par Papymuzo ] Slt allJ'ai un petit pb : Je fais un Yam's (je sais, il y en a des tonnes, et puis ?) et pour cela, il faut lancer des dés, donc il me faut une foncti type incompatible (debutant) [ par leoferie ] salut a tous je veux faire une calculette pour mon petit neveu qui sert a des petits exercices de calcul mental dans un form 3 textbox et 2 bouton 2 question sur rnd [ par 12miet ] bonjours c pour savoir cmt on fait pr dire kun nombre généré donne un mot.. du genre int(rnd*2)+1 et comment je fais pour dire ke 1=oui et 2=non et au Toujour un truc qui gene !! [ par aposfa ] bonsoir en fait je réalise un sudoku tout fonctionne tres bien sauf deux trucs bien génant !! 1er probleme : j'ai créer une fonction pour enregistre Hasard entre "" et "" [ par EckoFred ] Salut,j'aimerait savoir comment faire pour avoir un chiffre entre ex.:5 et 7.je sais que :-Randomizenombre = Int(Rnd * 101)-"Int (Rnd * 101)" est le m nombres aleatoires ET differents [ par Philibert ] bonjour, j'ai :DoiNbE1 = Cint(rnd*(x))iNbE2 = Cint(rnd*(x))iNbE3 = Cint(rnd*(x))iNbE4 = Cint(rnd*(x))iNbE5 = Cint(rnd*(x))iNbE6 = Cint(rnd*(x))Loopmai probleme d'aleatoire !!! [ par Etienne ] Comment fait-on pour pouvoir afficher dans des textbox des texte aléatoirement.exemple :Private Sub Command1_Click()RandomizelistA = Int(Rnd * 13) + 0 probleme d'aleatoire !!! [ par Etienne ] Comment fait-on pour pouvoir afficher dans des textbox des texte aléatoirement.exemple :Private Sub Command1_Click()RandomizelistA = Int(Rnd * 13) + 0 create table [ par DarkLanfeust ] il me dit qu'il y a une faute de syntaxe dans cette requete, je trouve pashelp pleaseCREATE TABLE dictionnaire(N° int(8) PRIMARY KEY,francais1 text(50


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales