IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Random et valeurs différentes dans tableau


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Points : 45
    Points
    45
    Par défaut Random et valeurs différentes dans tableau
    Bonjour
    Je suis débutant et je souhaite faire ceci :
    Générer 12 chiffres, de 1 à 12 et tous différents, pour les stocker dans un tableau.
    J'arrive à faire le random de 1 à 12, mais je suis débutant en tableau.
    Ensuite, afficher dans 12 labels les valeurs générées précédemment.
    Je sais que j'aurai certainement besoin d'une boucle dans laquelle je générerai un chiffre que je placerai dans la première case du tableau, ensuite une autre boucle pour reparcourir le tableau et tester si la nouvelle valeur générée existe déjà ou non s c'est le cas en générer une autre et si c'est pas le cas la placer dans la case suivante ... jusqu'à mais je sais vraiment pas comment m'y prendre pour commencer..
    Pouvez-vous s.v.pl m'aider ?
    Par avance merci.

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 639
    Points : 2 148
    Points
    2 148
    Par défaut
    Bonjour,

    tu as déjà l'algorithme en main, tu peux directement le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
            public int[] GenererTableau(int nombreMax)
            {
                int[] tableau = new int[nombreMax];
                Random random = new Random();
     
                for (int i = 0; i < nombreMax; i++)
                {
                    int nombre = random.Next(1, nombreMax +1);
     
                    if (!tableau.Contains(nombre))
                    {
                        tableau[i] = nombre;
                    }
     
                    else
                    {
                        i--; // On reboucle
                    }
                }
     
                return tableau;
            }
    Ça c'est si on s'en tiens a ton raisonnement, ça marche très bien mais si on a vraiment pas de chance ou qu'on utilises un nombre maximum trop grand, ça peut prendre trop de temps pour rien.

    Du coup je te propose aussi cette méthode, qui fait la même chose et en étant sur qu'elle bouclera le minimum de fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
            public int[] GenererTableau(int nombreMax)
            {
                int[] tableau = new int[nombreMax];
                Random random = new Random();
     
                for (int i = 0; i < nombreMax; i++)
                {
                    tableau[i] = i+1; // on rempli le tableau avec les valeurs
                }
     
                for (int i = 0; i < nombreMax; i++)
                {
                    int temp = tableau[i];
                    int randomIndex = random.Next(i,nombreMax);
                    tableau[i] = tableau[randomIndex];
                    tableau[randomIndex] = temp;
                }
     
                return tableau;
            }

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Points : 45
    Points
    45
    Par défaut
    Salut
    extra la solution 2 me va ensuite j'ai 12 variabes iRndAleat1, 2, 3.. 12
    Comment mettre les valeurs du tableau dans les variables ? 1 case = 1 variable random
    MERCI 1000x

  4. #4
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Points : 45
    Points
    45
    Par défaut
    Je suis entrain de faire un projet pour les tables de multiplications. J'ai encore un soucis.

    Nous avons une checkbox "Rappel des tables". Si elle est cochée, on peut choisir une table à gauche de livret, entre 1 et 12. Il me les affiches correctement, ça c'est en ordre.

    Si on la décoche et qu'on choisis une table, il me rempli à droite les labels de gauche avec la table choisie, c'est OK, mais j'aimerais que les labels de droite soient aussi remplis de 1 à 12 avec les chiffres ceux-ci choisis au hasard pour pas qu'ils ne soient dans le même ordre à chaque fois bien entendu.

    Le timer de 20 secondes est lancé et à partir du début du timer on ne peut plus changer la table de multiplications. C'est ok. Par contre, je teste également si la réponse est correct, afficher correct avec le label à droite en vert, si c'est incorrect, afficher incorrect (réponse) en rouge, et si c'est pas répondu, afficher Pas de réponse (réponse) en orange.

    J'ai essayé avec un try catch mais je n'y arrive pas je comprends pas ce que je fais de faux. Tous les lappels passent en "pas de réponse".

    Pouvez-vous s.v.pl m'aider à tester. Merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2012, 19h15
  2. Récupéré la valeur affichée dans tableau croisé
    Par stephanie dans le forum Formules
    Réponses: 1
    Dernier message: 07/11/2008, 14h52
  3. Réponses: 4
    Dernier message: 25/09/2007, 09h34
  4. Réponses: 3
    Dernier message: 01/03/2007, 16h26
  5. Nombre de valeurs différentes dans une colonne
    Par KrusK dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/08/2005, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo