jeanjeandada
Messages postés152Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention20 novembre 2011
-
7 juin 2008 à 12:42
jeanjeandada
Messages postés152Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention20 novembre 2011
-
9 juin 2008 à 09:58
Slt le forum,
J'aimerai savoir si il existe un fonction pour savoir si une variable à pour valeur un nombre PAIR ou IMPAIRE ??
De plus est-il possible de savoir, également ..., si un tableau est "rempli", c'est-à-dire de savoir tous emplacements du tableau ont une valeur?
Pour ce qui est de la seconde question :
- quel est le type de ton tableau ?
S'il est en effet numérique, chaque item aura de toute manière une "valeur" (0 par défaut)
S'il est de type String, il contiendra des strings ou ""
Si tu veux savoir si un/des item(s) contiennent 0 (tableau numérique) ou "" (tableau string), je ne vois pas comment éviter une boucle pour parcourir tous les items...
cs_akim77
Messages postés73Date d'inscriptionlundi 12 avril 2004StatutMembreDernière intervention17 septembre 20084 7 juin 2008 à 13:46
Salut,
PAIR ou IMPAIR 2 methodes
1)
un nombre est pair s'il est divisible par 2 :
Dim a As Integer
Dim resultat As String
a = 12If a Mod 2 > 0 Then resultat "impair" Else resultat "pair"
2)
un nombre est pair si son bit de poids faible est egal à 0:
Dim a As Integer
Dim resultat As String
a = 12If a And 1 Then resultat "impair" Else resultat "pair"
pour le tableau il faut verifier chaque element du tableau est vide
Dim Tab1(10) As String
Dim a As Integer
Dim resultat As String
resultat = "vide"
For a = 1 To UBound(Tab1)
If Tab1(a) <> "" Then resultat = "non vide": Exit For
Next
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 8 juin 2008 à 00:36
et encore un peu plus rapide avec :
Sub es()
Dim Tab1(10000004) As String
Dim a As Long
Dim Fin As Long
Fin = UBound(Tab1) - 4
temps = Timer
'Tab1(10000000) = "e"
For a = 1 To Fin Step 6
If Len(Tab1(a)) Or Len(Tab1(a + 1)) _
Or Len(Tab1(a + 2)) Or Len(Tab1(a + 3)) _
Or Len(Tab1(a + 4)) Or Len(Tab1(a + 5)) _
Then MsgBox "stop" & Timer - temps: Exit Sub
Next
MsgBox Timer - temps
End Sub
soit 0,46 seconde contre 1,125 avec la proposition initiale...
cs_akim77
Messages postés73Date d'inscriptionlundi 12 avril 2004StatutMembreDernière intervention17 septembre 20084 8 juin 2008 à 11:02
Bonjour,
US_30, je comprends aisément que les temps d'exécution de Len(Tab1(a)) et de Tab1(a) <> ""
soient différents, mais je suis bluffé par le gain de temps obtenu avec ta dernière proposition.
Je viens de vérifier qu'avec un Step12 on gagne encore du temps, il y a forcement une limite
mais c'est très intéressant .
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 8 juin 2008 à 12:54
Oui... Il est à noter, que si l'on pouvait connaître la taille de l'allocation mémoire pour un tableau de string (peut-être grâce à un API), il me semble qu'on pourrait déduire si celui-ci est totalement vide ou pas... sans passer par l'énumération... enfin, je crois... à voir...
jeanjeandada
Messages postés152Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention20 novembre 2011 9 juin 2008 à 09:58
Super. Merci pour vos réponses, j'en ai prit connaissance mais malhereusement jvais pas pouvoir les tests dans le temps immédiat..
Jvous dirai tout cela dans quelque jours !