Question de débutant

Question de débutant - VB/VBA/VBS - Programmation

Marsh Posté le 30-06-2004 à 18:41:16    

Salut à tous
Comme précisé dans le titre, je suis un gros débutant en prog, j'ai commencé ma formation y a quinze jours et les exercices sur vb hum... aujourd'hui
voilà, je dois réussir à trier 10 nombres par ordre croissant
je me doute bien que c'est tout con, mais je trouve pas ce qu'il me faut, les seules indications qu'on me donne sont :
 
techniques abordées : Répétitive(Do While...Loop); Tableau : variable(index)
et
Sur l'évènement click du bouton btAsc, trier les 10 nombres dans l'ordre ascendant en utilisant la répétitive et les zones de texte indicées.

 
voilà
j'ai bien compris qu'il fallait que j'intègre les variables dans un tableau, que je dois ensuite utiliser dans une boucle pour ne pas avoir à taper xxx lignes de code inutiles.
je ne demande surtout une solution, mais un début de piste, on ne m'a donné aucun élèment, je ne sais pas comment créer un tableau ( en farfouillant j'ai cru comprendre que je devais utiliser l'instruction Dim nomdutableau(9), mais ensuite....
et je ne sais pas non plus comment aller rechercher les variables dans le tableau
 
voilà, j'espère que ça paraitra pas trop ridicule et que qn voudra bien s'attarder sur mon cas, d'avance merci
 
Edit : je tiens à préciser que j'ai fait des recherches sur le ouaib et sur le forum mais ça n'a rien donné de concret, ça fait 3 heures que je cherche dans l'aide de vb, mais comme je sais pas quoi chercher, je rame...


Message édité par baha le 30-06-2004 à 18:58:04
Reply

Marsh Posté le 30-06-2004 à 18:41:16   

Reply

Marsh Posté le 30-06-2004 à 19:44:25    

je pense que tu dois faire ton tri à la main. (sans des fonction sort et autre)
 
prend 10 morceaux de feuille de papier, numérote de 1 à 10. mélange.
 
puis, aligne-les sur la table. Note sur une feuille ce que tu fais pour les mettre dans l'ordre, sachant que tu ne peux  qu'au maximum toucher 2 feuille à la fois.
 
sinon, techniquement c'est l'implémentation d'un tri à bulle (bubble sort) tout con, pas optimisé mais suffisant pour ton exo


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 30-06-2004 à 19:56:00    

http://forum.hardware.fr/hardwaref [...] 3534-1.htm
 
ça explique tout sur les tableaux en VB :o (entre autres [:cupra])


Message édité par drasche le 30-06-2004 à 19:56:07

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 30-06-2004 à 20:59:47    

je pense que je ne dois pas faire mon tri à la main ^^
c'était plutôt l'exercice précédent ds lequel on devait ordonner quatre cartes
ici on nous introduit bien la notion de boucles et de tableaux, le texte en gras dans mon premier post étant directement issu des instructions que nous avons reçu
 
sinon, si j'ai bien suivi, est-ce que ceci me constitue bien un tableau ?
 
Dim TabNb(9)
TabNb(0) = Text1(0).Text
TabNb(1) = Text1(1).Text
TabNb(2) = Text1(2).Text
TabNb(3) = Text1(3).Text
TabNb(4) = Text1(4).Text
TabNb(5) = Text1(5).Text
TabNb(6) = Text1(6).Text
TabNb(7) = Text1(7).Text
TabNb(8) = Text1(8).Text
TabNb(9) = Text1(9).Text

 
où text1(n) sont les chiffres à ordonner et TabNb le nom de mon tableau
j'ai l'impression que c'est ok, mais je suis pas sûr, of course
 
sinon j'ai aucune idée de la façon d'utiliser do while, ni de ce que je dois utiliser dans la boucle, je ne sais pas appeler les variables introduites dans le tableau

Reply

Marsh Posté le 01-07-2004 à 06:19:42    

déja tu remplaces tout ça par  

Code :
  1. for i=0 to 9
  2.   TabNb(i) = Text1(i).Text
  3. next


opui ça te fais bien un tableau, que tu déclare dim TabNb(9)
Ensuite tu vas comparer chaque élément de ton tableau avec l'élément suivant ( avec des boucles for...next par exemple,ou avec tant que -do while....loop-)
Si l'élément(n) est plus petit que l'élément(n+1) alors tu ne fais rien, sinon tu permutes les 2. Ensuite tu faits élément(n) avec élément(n+2) etc...une fois que t'as comparé (n) avec les 9 autres, tu es sûr d'avoir le plus petit des 10 en haut. Donc tu recommences mais cette fois en commençant par (n+1))
Avec des for tu vas devoir faire 2 boucles imbriquées

Code :
  1. for i=0 to 8
  2.    for j=1 to 9
  3.       si élément(i) > élément(j)
  4.         on permute
  5.    j suivant
  6. i suivant


Message édité par glod 2 le 01-07-2004 à 06:21:15
Reply

Marsh Posté le 01-07-2004 à 09:03:48    

Merci! voilà la réponse que j'attendais lol
très matinal en tout cas ;)
je continue de bosser, je reviendrai poster

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed