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

VB.NET Discussion :

Melange des Donnees d'un Tableau


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut Melange des Donnees d'un Tableau
    Salut All,

    Je cherche un algo ou une class qui me permettrait de faire un melange dans un tableau simple de donnees en short. (environ une centaine de donnees)

    Voici un exemple sur 1 tableau à 5 donnees :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim TableauX() as Short = New Short(4) { 0, 1, 2, 3, 4 }
    et je voudrais, apres melange, que le TableauX comporte toutes les donnees initiales, mais dans le/un desordre aleatoire.

    J'ai cherche du cote de Array.Sort mais choux blanc pour un aleaoire.
    Merci pour votre aide.

    ++ Danyel.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Salut l'insomniaque (Msg posté a 5h28 ... )
    Je ne me rappelle pas de la syntaxe Random mais le plus simple serait je pense une Function dans le genre de celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function Melange( T1() as integer) as integer()
    	Dim C as integer
    	Dim T2(T1.length-1) as integer
    	For i as integer = 0 to T2.length-1
    		C = chiffre aléatoire entre [ 0 et T1.length-1 ]
    		T2(i) = T1(C)
    		'suppression de la case utilisée
    		For J as integer = C to T1.length - 2
    			T1(J) = T1(J+1)
    		Next
    		Redim Preserve T1(T1.Length-2)
    	Next
    	Return T2
    End Function
    Je n'est pas testé le code, donc si ton écran se met à fondre pendant l'execution je ne suis en aucun cas responsable.
    Tiens moi au courant ...

  3. #3
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Merci Totanne.
    Je vais (essayer de) regarder ton code et voir si mon ecran va fondre


    PS : Ouais en ce moment j'ai tendance à tirer sur la corde comme on dit

  4. #4
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Apres corrections et tentatives, il semblerait que ca fonctionne correctement comme ceci
    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
    Public Function Melange(ByVal T1() As Short) As Short()
            Dim C As Integer
            Dim T2(T1.Length - 1) As Short
            For i As Integer = 0 To T2.Length - 1
                'C = chiffre aléatoire entre [ 0 et T1.length-1 ]
                Randomize()
                C = (T1.Length - 1) * Rnd()
                T2(i) = T1(C)
                'suppression de la case utilisée
                For J As Integer = C To T1.Length - 2
                    T1(J) = T1(J + 1)
                Next
                ReDim Preserve T1(T1.Length - 2)
            Next
            Return T2
    End Function
    J'ai change les integer en short car mon tableau est evidemment en short.
    Je suis en train de controler si toutes les donnees sont presentes et sans doublon.


    PS : pour info voici le code de generation aleatoire entre 2 valeurs distinctes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    randomvalue = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    randomvalue = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))
    Si ton PostScriptum est bon, du coup il doit y avoir erreur dans le calcul de C :
    - Lower devient 0
    - Upper devient T1.length -1
    - randomvalue = ((T1.length -1) - 0 + 1) * Rnd() + 0
    soit : C = T1.Length * Rnd() et non pas C = (T1.Length-1) * Rnd()

    ... d'un autre coté si ca marche

  6. #6
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Oui je sais !!!
    Quand je laisse la veritable fonction, ca me donne un indice en dehors lors de l'execution.

    ...
    Je vais quand meme rejeter un oeil
    ...

    Tu m'as remis le doute

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recuperation des donnees d'un tableau
    Par rvm31 dans le forum Langage
    Réponses: 3
    Dernier message: 05/02/2013, 12h02
  2. Récuperation des donnees depuis un tableau contenant des champs de texte
    Par dev2010 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 06/09/2010, 14h12
  3. passer des donnees d'un tableau HTML à des zones html text
    Par tesnim dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 21/10/2009, 14h35
  4. import des donnees python vers tableau
    Par tsicc dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 02/04/2008, 10h10
  5. ch a envoyer des donnees dans un tableau d'un fichier
    Par aerosketchique dans le forum C++
    Réponses: 1
    Dernier message: 08/04/2006, 18h43

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