Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comparaisons: meilleure méthode?

5 réponses
Avatar
Tr
Bonjour à tous,

j'ai 5 couples de données (nombres à virgule)
par exemple:
A=0.36, A'=23.29
B=0.37, B'=23.30
C=0.38, C'=23.30
D=0.39, D'=23.29
E=0.40, E'=23.28

je voudrais le plus grand de la seconde colonne, puis en cas d'égalité,
le plus petit de la première colonne pour les égalités
donc ici B=0.37

Quelle est la technique à utiliser (vb2008)

merci d'avance pour vos pistes.

--
*allophobe* : Qui a peur des différences. (Définition)
tranquille.xav@gmail.com

5 réponses

Avatar
Tr
*Ecrit* *par* **:
Bonjour à tous,



j'ai 5 couples de données (nombres à virgule)
par exemple:
A=0.36, A'#.29
B=0.37, B'#.30
C=0.38, C'#.30
D=0.39, D'#.29
E=0.40, E'#.28



je voudrais le plus grand de la seconde colonne, puis en cas
d'égalité, le plus petit de la première colonne pour les égalités
donc ici B=0.37



Quelle est la technique à utiliser (vb2008)



merci d'avance pour vos pistes.



plus simple encore, je n'ai maintenant que 3 couples...

--
Commençons par faire ce que l'on dit plutôt que de dire ce que l'on va
faire. (Etat d'esprit)

Avatar
Bonjour Tranquille,

Je dirais au 1er abord, tu captures la valeur max
max2=max(a';b';c')
ensuite, tu parcours chaque données pour trouver toutes les valeurs égales à
max2
pour ces valeurs, tu captures la valeur de la colonne 1 et tu compares si
elle est plus petite
min1Þcimal.maxvalue
if max2=a' andalso a<min1 then min1=a
if max2=b' andalso b<min1 then min1=b

sachant que travailler dans des tableaux pourraient être préférables surtout
si tu dois aller 1 jour jusqu'à z

Bonne journée,
Stéphane


"" a écrit dans le message de news:

*Ecrit* *par* **:
Bonjour à tous,



j'ai 5 couples de données (nombres à virgule)
par exemple:
A=0.36, A'#.29
B=0.37, B'#.30
C=0.38, C'#.30
D=0.39, D'#.29
E=0.40, E'#.28



je voudrais le plus grand de la seconde colonne, puis en cas d'égalité,
le plus petit de la première colonne pour les égalités
donc ici B=0.37



Quelle est la technique à utiliser (vb2008)



merci d'avance pour vos pistes.



plus simple encore, je n'ai maintenant que 3 couples...

--
Commençons par faire ce que l'on dit plutôt que de dire ce que l'on va
faire. (Etat d'esprit)





Avatar
Tr
*Ecrit* *par* *Stéphane*:
Bonjour Tranquille,



Je dirais au 1er abord, tu captures la valeur max
max2=max(a';b';c')



j'ai cru qu'il existait une fonction dans vb2008 ou framework pour
comparer plusieurs nombres, or max ne prend que deux arguments.
me reste donc travail sur tableaux, comme tu le suggères...
merci bien.

...

sachant que travailler dans des tableaux pourraient être préférables
surtout si tu dois aller 1 jour jusqu'à z



Bonne journée,
Stéphane




"" a écrit dans le message de
news:
*Ecrit* *par* **:
Bonjour à tous,



j'ai 5 couples de données (nombres à virgule)
par exemple:
A=0.36, A'#.29
B=0.37, B'#.30
C=0.38, C'#.30
D=0.39, D'#.29
E=0.40, E'#.28



je voudrais le plus grand de la seconde colonne, puis en cas
d'égalité, le plus petit de la première colonne pour les égalités
donc ici B=0.37



Quelle est la technique à utiliser (vb2008)



merci d'avance pour vos pistes.



plus simple encore, je n'ai maintenant que 3 couples...

-- Commençons par faire ce que l'on dit plutôt que de dire ce que
l'on va faire. (Etat d'esprit)








--
Chacun son tour. (Etat d'esprit)

Avatar
Je n'avais pas regardé la syntaxe, :mais si max n'accepte que 2 arguments,
ce n'est vraiment pas 1 problème en soit !
max2=max(a';max(b';c'))

++
Stéphane

"" a écrit dans le message de news:

*Ecrit* *par* *Stéphane*:
Bonjour Tranquille,



Je dirais au 1er abord, tu captures la valeur max
max2=max(a';b';c')



j'ai cru qu'il existait une fonction dans vb2008 ou framework pour
comparer plusieurs nombres, or max ne prend que deux arguments.
me reste donc travail sur tableaux, comme tu le suggères...
merci bien.

...

sachant que travailler dans des tableaux pourraient être préférables
surtout si tu dois aller 1 jour jusqu'à z



Bonne journée,
Stéphane




"" a écrit dans le message de news:

*Ecrit* *par* **:
Bonjour à tous,



j'ai 5 couples de données (nombres à virgule)
par exemple:
A=0.36, A'#.29
B=0.37, B'#.30
C=0.38, C'#.30
D=0.39, D'#.29
E=0.40, E'#.28



je voudrais le plus grand de la seconde colonne, puis en cas d'égalité,
le plus petit de la première colonne pour les égalités
donc ici B=0.37



Quelle est la technique à utiliser (vb2008)



merci d'avance pour vos pistes.



plus simple encore, je n'ai maintenant que 3 couples...

-- Commençons par faire ce que l'on dit plutôt que de dire ce que l'on
va faire. (Etat d'esprit)








--
Chacun son tour. (Etat d'esprit)





Avatar
Tr
*Ecrit* *par* *Stéphane*:
Je n'avais pas regardé la syntaxe, :mais si max n'accepte que 2
arguments, ce n'est vraiment pas 1 problème en soit !
max2=max(a';max(b';c'))



++
Stéphane



bon, voilà finalement la technique que j'utilise, considérant qu'il
peut y avoir des égalités sur mes Y, pas pour mes X, et que les X sont
déjà dans l'ordre croissant...
chaque couple est vu comme un point(X,Y)

Dim i As Integer = 0
Dim UBoundTableau As Integer = 0
Dim Table(5) As PointF
Dim Table1(1) As PointF

'remplissage à la main pour l'exemple:
Table(0) = New PointF(0.36, 23.29)
Table(1) = New PointF(0.37, 23.30)
Table(2) = New PointF(0.38, 23.30)
Table(3) = New PointF(0.39, 23.29)
Table(4) = New PointF(0.40, 23.28)

Table1(0) = Table(0)
UBoundTableau = Table.GetUpperBound(0) - 1
For i = 0 To UBoundTableau
If (Table(i + 1).Y > Table(i).Y) Then
ReDim Table1(1)
Table1(0) = Table(i + 1)
ElseIf (Table(i + 1).Y = Table(i).Y) Then
ReDim Preserve Table1(i + 1)
Table1(1) = Table(i + 1)
End If
Next
'à la fin, prendre l'élément 0 du second tableau1
MsgBox(Table1(0).X & " | " & Table1(0).Y)

ça a l'air de fonctionner
merci de ton aide en tout cas.

"" a écrit dans le message de
news:
*Ecrit* *par* *Stéphane*:
Bonjour Tranquille,



Je dirais au 1er abord, tu captures la valeur max
max2=max(a';b';c')



j'ai cru qu'il existait une fonction dans vb2008 ou framework pour
comparer plusieurs nombres, or max ne prend que deux arguments.
me reste donc travail sur tableaux, comme tu le suggères...
merci bien.

...

sachant que travailler dans des tableaux pourraient être
préférables surtout si tu dois aller 1 jour jusqu'à z



Bonne journée,
Stéphane




"" a écrit dans le message de
news:
*Ecrit* *par* **:
Bonjour à tous,



j'ai 5 couples de données (nombres à virgule)
par exemple:
A=0.36, A'#.29
B=0.37, B'#.30
C=0.38, C'#.30
D=0.39, D'#.29
E=0.40, E'#.28



je voudrais le plus grand de la seconde colonne, puis en cas
d'égalité, le plus petit de la première colonne pour les
égalités
donc ici B=0.37



Quelle est la technique à utiliser (vb2008)



merci d'avance pour vos pistes.



plus simple encore, je n'ai maintenant que 3 couples...










--
En politique, l'important n'est pas la victoire de son camp mais celle
de ses idées. (Conclusion)