VS fonction de nombre aléatoire

Résolu/Fermé
Ncisboys - Modifié par Ncisboys le 21/05/2012 à 19:40
ncisboys Messages postés 4 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 23 mai 2012 - 22 mai 2012 à 16:32
Bonjour,

J ai un petit probleme

Je souhaite faire apparraitre un texte en fonction d un nombre aléatoire

en effet si la valeur est 1 par exemple un type de texte apparait

si c est deux un autre texte ect ... tous cela.

J ai fais plusieurs select case

et le problème c est que le nombre aléatoire est tous le temps le même

Comment faire pour le faire changer ?

voila le code pour le nombre aléatoire

Randomize() 
        number = 0 
        max = 4 
        min = 0 
        Hasard = New Random 
        max = max + 1 
        number = Hasard.Next(min, max) 
        number1 = number   ' stockage dans une autre variable. 


ensuite j ai mon select case qui dépend de la variable number
Select Case (number) 
                Case 0 
                    Introduction = "Bonjour " ' introduction est déclarér  
                Case 1 
                    Introduction = "Bonsoir " 
                Case 2 
                    Introduction = "Hello " 
                Case 3 
                    Introduction = "Good morning " 
                Case 4 
                    Introduction = "Good Afternoon " 
                Case 5 
                    Introduction = "good evening " 

            End Select 

Je remet le code pour changer la valeur de number
Randomize() 
        number = 0 
        max = 4 
        min = 0 
        Hasard = New Random 
        max = max + 1 
        number = Hasard.Next(min, max) 
        number1 = number   ' stockage dans une autre variable. 


Et il y a un autre select case

Le problème c est que le number du premier select case est identique a celui du deuxieme comment faire ?


Encore merci a tous de vos futur réponse
A voir également:

5 réponses

Utilisateur anonyme
22 mai 2012 à 04:02
Salut,
En fait tu veux un nombre (number) de 0 à 5

               int min = 0;
               int max = 5;
               int number = 0;

               Random r = new Random();
               number = min + r.nextInt((max - min) +1);


Cordialement,

Dan
1
Le Dodo Messages postés 1932 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 244
22 mai 2012 à 06:39
bon ben problème résolu :-)
0
Utilisateur anonyme
22 mai 2012 à 07:59
Salut,

On peut copier chaque nombre aléatoire dans l'ordre d'obtension et sans doublons dans un tableau.

Quand les 6 n° sont dans le tableau on les exploite tous l'un après l'autre.

Le code:


            int min = 0;
            int max = 5;
         
         // on initialise le tableau des nombres déjà obtenus à une valeur différente de min à max
         // soit par exemple à max +1
         
            int nbresDiff = ((max - min) +1); // sera la taille du tableau.
            System.out.println("nbresDiff = " + nbresDiff);
            boolean encore = true;
            int[] tab = new int[nbresDiff];
         
            for (int i = 0; i <nbresDiff; i++) 
               tab[i] = max +1;
         
         
            int i2 = 0;
            while(encore)
            {
               for (i1 = 0; i1 <nbresDiff; i1++)
               {
                  encore = false; // sera forcé true si doublon
                  Random r = new Random();
                  int number = min + r.nextInt(nbresDiff); //trouvé
               
                  for (i2 = 0; i2 <nbresDiff; i2++)
                  {
                     if (number == tab[i2])
                     {
                        encore = true;
                        System.out.println("Le nouveau num. obtenu:\n" + number
                           + " est un doublon, on ne le prend pas.(i2 = " + i2 + ")\n");
                        i1--;
                        break;
                     }
                  }
               
                  if (encore == false)
                     tab[i1] = number;
               }
            }
         
         //L'ordre aléatoire des chiffres 0 à 5 est dans le tableau tab.
            for (i1 = 0; i1 <nbresDiff; i1++)
            {
               System.out.println("num. " + (i1 +1) + ": " + tab[i1]);
               int sel = tab[i1];
               switch (sel)
               {
                  case 0:
                     System.out.println( "Bonjour ");
                     break;
                  case 1:
                     System.out.println("Bonsoir ");
                     break;
                  case 2:
                     System.out.println("Hello ");
                     break;
                  case 3:
                     System.out.println("Good morning ");
                     break;
                  case 4:
                     System.out.println("Good Afternoon ");
                     break;
                  case 5:
                     System.out.println("good evening ");
                     break;
               }
            }

Cordialement,

Dan
1
ncisboys Messages postés 4 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 23 mai 2012
22 mai 2012 à 16:32
Merci sa marche ...

sauf que en VB c est pas switch mais select case
0
coding:cp1252 Messages postés 11 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 2 octobre 2012 1
21 mai 2012 à 19:52
Le nom du langage ?
0
J utilise Visual Studio avec des window application form

apres le nom du langague je ne sais pas

Donc je dirai que le nom du language c est Visual Basic

J ai essayer La fonction Rnd mais cela ne marche pas ...
0
Le Dodo Messages postés 1932 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 244
Modifié par Le Dodo le 21/05/2012 à 20:42
un programmeur qui ne connaît pas son langage de programmation !
J'ai jamais vu ça ! xD

peux-tu nous copier le code en entier (y compris les directives de préprocesseur) ?
0
Qu est que tu entend par préprocesseur ?

sinon voici le code
Public Class Generateur
#Region " Déclaration des variables"
    
    
    Dim Hasard, Hasard1, As Random
    Dim max, min As Integer
    Dim number, number1, number2 As Integer
    Dim Bonjour As String
    Dim Introduction As String
    Dim Introduction2 As String

#End Region

#Region " Interface"
    
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        max = 10
        min = 0
        compteur = 0
    End Sub

    Private Sub Generateur_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Randomize()
    End Sub

#End Region

Public Sub Generer_Click(sender As System.Object, e As System.EventArgs) Handles Generer.Click

        Nombre aléatoire 
        Randomize()
        number = 0
        max = 5
        min = 0
        Bonjour = " Bonjour "
        Emprunt = (Val(Somme.Text))
        Hasard = New Random
        max = max + 1
        number = Hasard.Next(min, max)
        Entrer = Environment.NewLine
        number1 = number
        Virgule = " , "

        ' Introduction 
        If (number > 10) Then
            MsgBox(" Erreur ")
            compteur = compteur + 1
            hasardbox.Text = " Le nombre Hasard est " & number
            Console.WriteLine(hasardbox)
        Else
            Select Case (number) 
                Case 0 
                    Introduction = "Bonjour " ' introduction est déclarér  
                Case 1 
                    Introduction = "Bonsoir " 
                Case 2 
                    Introduction = "Hello " 
                Case 3 
                    Introduction = "Good morning " 
                Case 4 
                    Introduction = "Good Afternoon " 
                Case 5 
                    Introduction = "good evening " 

            End Select 
        End If
        ' Introduction 2 
        ' Nombre aléatoire
        Randomize()
        number = 0
        max = 5
        min = 0
        Hasard = New Random
        max = max + 1
        number = Hasard.Next(min, max)
        number2 = Val(number)

        If (number > 10) Then
            MsgBox(" Erreur ")
            compteur = compteur + 1
            hasardbox.Text = " Le nombre Hasard est " & number
            Console.WriteLine(hasardbox)
        Else
            Select Case (number1)
                Case 0
                    Introduction2 = "Comment allez vous  "
                Case 1
                    Introduction2 = "How Are you ?   "
                Case 2
                    Introduction2 = " Comment allez vous "
                Case 3
                    Introduction2 = "Comment allez vous  "
                Case 4
                    Introduction2 = "Comment allez vous  "
                Case 5
                    Introduction2 = "Comment allez vous   "
            End Select
        End If


 hasardbox.Text = " Combinaison : " & number1 & number2 
        Console.WriteLine(hasardbox)
        Final.Text = Bonjour 
        Console.WriteLine(Final
End Sub
0
Le Dodo Messages postés 1932 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 244
Modifié par Le Dodo le 21/05/2012 à 20:58
le préprocesseur c'est les lignes qui commencent généralement par un #. C'est fait pour un petit programme qui passe avant le compilateur

je connais pas ce langage.

C'est pas du Java, c'est pas du C, c'est pas du C++

Par hasard... VB.NET ou C# ? vu que c'est sur Visual Studio...
0
ncisboys Messages postés 4 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 23 mai 2012
21 mai 2012 à 20:58
Je pense que c est du VB net

En tout cas j utilise visual studio 2010 avec le projet application Window Forms
0
Le Dodo Messages postés 1932 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 244
21 mai 2012 à 21:00
plus j'y regardes, et plus je pense que c'est du VB.NET...

ça ressemble à ça :
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/991162-tp-navigateur-web
(en moins compliqué ^^')
0

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

Posez votre question
ncisboys Messages postés 4 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 23 mai 2012
Modifié par ncisboys le 21/05/2012 à 21:02
C est ca je confirme

Enfin j arrive pas faire ce que je veux faire
0