Gambas France BETA


Pas de compte ? Incription

[RESOLU]Récupérer la position d'un item dans un tableau...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 12/3/2011 à 11:48:00
Bonjour,
j'ai un tableau simple du style :
1
PRIVATE montableau AS FLOAT[38]


J'ajoute des valeurs dans ce tableau du style :

1
montableau.add(18.3,1)montableau.add(19,2)montableau.add(14.6,3)montableau.add(9.4,4)montableau.add(4.2,5)montableau.add(19.9,6)


Quelle code écrire pour retrouver la position de la valeur la plus haute (19,9) de mon tableau.
Je ne sais comment utiliser MAX dans ce cas précis.
Avec montableau.sort(gb.descent), je n'ai plus la position voulue.

Merci pour votre aide

;) ;)
manu#2 Posté le 12/3/2011 à 12:34:00
Avec Gambas ca roule !
1
montableau.Sort ' on tri le tableau par ordre croissant (par default)PRINT montableau.Max 'on sort le dernier index



Tout simplement Spheris :)

Cette commande te renverra l'index 5 normalement, ce qui correspond bien au sixième enregistrement (19.9) puisque le premier index est 0.

Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
manu#3 Posté le 12/3/2011 à 12:40:00
Avec Gambas ca roule !pour bien visualiser tu peux mettre ca comme code et changer tes valeurs :

1
PUBLIC SUB Button1_Click()DIM i AS Integermontableau.Sort(0) FOR i = 0 TO montableau.max PRINT montableau[i] NEXT PRINT montableau.MaxEND


Puis tu observes les differences en fonctions des valeurs saisies dans le tableau
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
manu#4 Posté le 12/3/2011 à 15:11:00
Avec Gambas ca roule !aller, j'ai repensé à la question !!! ;)

Dans un projet vierge copie ça et créer un bouton dans fmain :

1
' Gambas class filePrivate montableau As New Float[]Public Sub _new()EndPublic Sub Form_Open() montableau.add(18.3, 1) montableau.add(12, 2) montableau.add(14.6, 3) montableau.add(9.4, 4) montableau.add(20, 5) montableau.add(19.9, 6)EndPublic Sub Button1_Click()Dim i As IntegerDim fValMax As Float = 0 For i = 0 To montableau.Max ' on lit toutes les items du tableau Print i & " " & montableau[i] If montableau[i] > fValMax Then fValMax = montableau[i] ' on stoke dans fValMax le contenu de l'item si elle est plus grande Next Print "l'index de la valeur la plus grande est " & montableau.Find(fValMax) 'Retourne l'index de la valeur maxi trouvéEnd


Les explications sont dans le code. mais c'est en fait la fonction find qu'on utilise. Cette fonction renvois l'index de la valeur que l'on cherche en fait !

Et la on ne touche pas au tableau ! on fait que le lire :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
spheris#5 Posté le 13/3/2011 à 20:00:00
Manu,
Merci pour ces conseils.
Cela marche impeccable.
A+
;) ;)

récuperer l'index de la valeur max d'un tableau :
1
montableau.sort(0) '0 tri dans l'ordre croissantmontableau.find(montableau.max)

1