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 6 et antérieur Discussion :

[Probleme] tri croissant - tableaux (débutant)


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [Probleme] tri croissant - tableaux (débutant)
    Bonsoir. J'ai été un peu voir sur les tutoriaux mais je n'ai pas trouvé mon bonheur

    Je viens juste de commencer le VB et je dois faire le tri d'un tableau de 10 nombres par ordre croissant avec un autre tableau. Donc l'utilisateur entre 10 nombres dans un tableau A et le programme les envoie trié dans un tableau B.

    Pour entrez les nombres et les afficher, ca va. Mais le tri je n'y arrive pas du tout

    (la je vous mets juste le tout début, ca je sais que c'est juste (enfin je crois...))




    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
    Sub main()
     
    Dim i As Integer
    Dim table(1 To 10)
     
    For i = 1 To 10
        table(i) = InputBox("entrez un nombre")
    Next i
     
     
    For i = 1 To 10
        MsgBox (CStr(table(i)))
    Next i
     
    End Sub
    Merci d'avance pour votre aide précieuse.

    [Edit] bbil : utilisez le bouton pour rajouter les balises de codes [CODE]

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Chande ton titre !
    "Besoin d'aide" n'en est certes pas un..

    cherche un peu mieux sur ce forum : ce sujet a été traité au moins 3 fois récemment (j'espère pour toi qu'il n'a pas été également intitulé... "besoin d'aide"... si tu vois ce que je veux dire !...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Désolé pour le titre. Au niveau de la recherche les tri de tableau que j'ai trouvé sont plus complexe que le mien et utilise de fonctions que je n'ai pas encore vue, je n'arrive pas vraiment a les comprendre . Je viens de commencer en pour le moment je patauge

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ben...
    Si tu ne comprends pas celà :
    http://www.developpez.net/forums/sho...83&postcount=3

    je ne nous vois pas te faire un cours complet sur les fonctions, les sous-routines et... tout VB quoi !

    Il te reste alors une solution (lourde mais simple pour toi...) :

    Envoyer le tableau A dans une listBox dont la propriété sorted = True, puis récupérer dans le tableau B ce qui se trouve dans la listbox.

    J'espère que tu sais au moins faire des boucles For... Next... (c'est un minimum...)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Les boucles je connais mais les autres trucs...



    Voila ce que j'ai déja:



    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
    23
    24
    25
    26
    27
    28
    29
    Sub main()
     
    Dim a, i, j As Integer
    Dim tableA(1 To 10)
    Dim tableB(1 To 10)
     
    For i = 1 To 10
        tableA(i) = InputBox("entrez un nombre")
    Next i
     
    For i = 1 To 10
        a=i
        For j = 2 To 10
            If tableA(i) >= tableA(j) Then
                    -->Si le 1er est plus grand que le 2eme<--
    		-->Alors on ajoute 1 à i<--
                    -->Sinon on passe à j+1<--
            End If
        Next j
        i=a
        tableB(i) = tableA(i)
    Next i
     
     
    For i = 1 To 10
        MsgBox (CStr(tableB(i)))
    Next i
     
    End Sub

  6. #6
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Il ne faut qu'un seul For sinon tu execute du code pour rien si ton nombre est bien placé dés le début, voila une facon, avec un Do Loop :

    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
    Dim a As String
    Dim B As Single
    Dim Place As Boolean
    Dim Entree() As String
     
     
    For Boucle = 1 To UBound(Entree)
        B = Boucle
        Place = False
        Do
            If CSng(Entree(B)) < CSng(Entree(B - 1)) Then
                a = Entree(B)
                Entree(B) = Entree(B - 1)
                Entree(B - 1) = a
                If B <> 1 Then B = B - 1
            Else: Place = True
            End If
        Loop While Place = False
    Next Boucle
     
    End Sub
    ce code tri le tableau Entree

Discussions similaires

  1. [AC-2003] probleme de tri croissant
    Par vincent50 dans le forum Access
    Réponses: 2
    Dernier message: 15/06/2010, 09h01
  2. Probleme de tri croissant pour des nombres
    Par sebastien_oasis dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 11/08/2007, 11h14
  3. [debutant]XSL: Probleme tri et sommation !
    Par paparkha dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/08/2005, 21h23
  4. [Débutant] Petit probleme try catch
    Par Terminator dans le forum Langage
    Réponses: 16
    Dernier message: 30/06/2005, 14h21
  5. Réponses: 2
    Dernier message: 21/06/2005, 17h37

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