[R] Coquille dans la doc de la fonction _ArrayMaxIndex()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

[R] Coquille dans la doc de la fonction _ArrayMaxIndex()

#1

Message par jpascal »

Bonjour,

J'ai testé la fonction _ArrayMaxIndex().
Le résultat de l'exemple est erroné lors de l'utilisation avec un tableau à deux dimensions. On obtient toujours 0.
#include <Array.au3>
#include <MsgBoxConstants.au3>

Local $aArray[4][4]
For $i = 0 To 3
    For $j = 0 To 3
        $aArray[$i][$j] = Random(0, 99, 1)
    Next
Next
_ArrayDisplay($aArray, "2D Array")
MsgBox($MB_SYSTEMMODAL, 'Max Index Numeric value in column 2', _ArrayMaxIndex($aArray, 1, 0, 0, 2))

Comme indiqué dans la doc, ce n'est pas 0 mais -1 qu'il faut utiliser comme valeur de paramètre $iStart et $iEnd. Pour $iStart, logiquement 0 fonctionne aussi.
Cela porte à confusion car pour la fonction _ArraySearch(), c'est bien 0 que l'on utilise.
Modifié en dernier par jpascal le mar. 21 déc. 2021 13:37, modifié 1 fois.
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Coquille dans la doc de la fonction _ArrayMaxIndex()

#2

Message par mikell »

Il n'est pas erroné, mais plutôt mal fichu et pas du tout représentatif :mrgreen:
Quand $iStart = 0 et $iEnd = 0 c'est normal que l'index retourné soit 0 vu que 0 n'est pas la valeur par défaut et que les index sont 0-based (contrairement au traitement pour les arrays 1D)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Coquille dans la doc de la fonction _ArrayMaxIndex()

#3

Message par TommyDDR »

Le problème vient plutôt de _ArraySearch
Il est impossible de lancer une recherche uniquement sur la case 0 du tableau :
   ; Bounds checking
   If $bRow Then
      If UBound($aArray, $UBOUND_DIMENSIONS) = 1 Then Return SetError(5, 0, -1)
      If $iEnd < 1 Or $iEnd > $iDim_2 Then $iEnd = $iDim_2
      If $iStart < 0 Then $iStart = 0
      If $iStart > $iEnd Then Return SetError(4, 0, -1)
   Else
      If $iEnd < 1 Or $iEnd > $iDim_1 Then $iEnd = $iDim_1
      If $iStart < 0 Then $iStart = 0
      If $iStart > $iEnd Then Return SetError(4, 0, -1)
   EndIf
Si iEnd est = à 0 alors on cherche dans tout le tableau
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Coquille dans la doc de la fonction _ArrayMaxIndex()

#4

Message par jchd »

Modifié en dernier par mikell le mer. 15 déc. 2021 19:09, modifié 1 fois.
Raison : ajout du lien. JC tu pourrais faire un effort ^^
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

Re: [..] Coquille dans la doc de la fonction _ArrayMaxIndex()

#5

Message par jpascal »

Merci à jchd pour le lien et merci à TommyDDR pour avoir posé la question sur le forum US. :-)
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Répondre