Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pair ou Impaire [ Divers / Débutants ] (jeanjeandada)

samedi 7 juin 2008 à 12:42:27 | Pair ou Impaire

jeanjeandada

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?



Voila
Merci
et A toute !



samedi 7 juin 2008 à 13:41:06 | Re : Pair ou Impaire

jmfmarques

Membre Club

Bonjour,

Pour ce qui est de ta 1ère question, tu devrais lire ce que Renfields a écrit dans cette discussion :

http://www.vbfrance.com/infomsg_PRODUIT-NOMBRES-IMPAIRS-CONSECUTIFS_1147759.aspx#7

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...

 


samedi 7 juin 2008 à 13:42:25 | Re : Pair ou Impaire

jmfmarques

Membre Club
Pardon ! ce n'est pas RenField, mais Brunews !!!

samedi 7 juin 2008 à 13:46:16 | Re : Pair ou Impaire

akim77

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 = 12
If 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 = 12
If 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

A+

Akim

samedi 7 juin 2008 à 13:51:30 | Re : Pair ou Impaire

akim77


Désolé jmfmarques , j'ai toujours un métro de retard.
Amicalement

Akim

dimanche 8 juin 2008 à 00:19:40 | Re : Pair ou Impaire

us_30

Membre Club

Bonsoir à tous,

Voici mon grain de sel...
Je suis d'accord Akim pour la parité... mais on aurait pu aussi reprendre le snippets suivant :

Function Parite(nb As Long) As String
Parite = IIf((nb And 1), "Impair", "Pair")
End Function


Sub test()
Debug.Print Parite(47)
End Sub

Oui, bon... rien d'extraordinaire non plus... et presque pareil...



Par contre pour la 2ième partie, je vous propose d'essayer d'optimiser la rapidité... je trouve ceci (sous VBE) légérement plus rapide (-30%)

Sub es()

Dim Tab1(10000000) As String
Dim a As Long
Dim Fin As Long
Fin = UBound(Tab1)

temps = Timer
'Tab1(9999999) = "ede"

For a = 1 To Fin
If Len(Tab1(a)) Then MsgBox "stop" & Timer - temps: Exit Sub
Next

MsgBox Timer - temps

End Sub



Mais bon, c'est pour le fun, bien sur...  et pas essayé en compilé...

Amicalement,
Us.



dimanche 8 juin 2008 à 00:36:33 | Re : Pair ou Impaire

us_30

Membre Club

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...

Amicalement,
Us.


dimanche 8 juin 2008 à 11:02:12 | Re : Pair ou Impaire

akim77

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 .

Merci et bon Dimanche

Akim



dimanche 8 juin 2008 à 12:54:09 | Re : Pair ou Impaire

us_30

Membre Club
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...

Amicalement,
Us.

lundi 9 juin 2008 à 09:58:40 | Re : Pair ou Impaire

jeanjeandada

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 !


MErci @+



Cette discussion est classé dans : valeur, tableau, pair, impaire


Répondre à ce message

Sujets en rapport avec ce message

vba passage de tableau par VALEUR [ par greg ] Hello impossible to pass arrays by Value in VBA,say I wanna do it anyway... Then how?Is there anything like the C++ "const" keyword?Any trick?Many tha Comment peut on savoir quel est la valeur max dans un tableau de valeurs ? [ par Moi ] Comment peut on savoir quel est la valeur max dans un tableau de valeurs ? puissance 4 tableau de valeur [ par lataupeben ] j'ai besoin d'un conseilj'ai un tableaudim tab(7,6) as string*1avec des valeur qui sonyt r j ou riensi on se represente le tableau en 2Dil faudrait qu Test sur l'égalité des valeurs d'un tableau [ par Arcanis ] Salut tout le monde,Je cherche une manière simple de tester l'égalité des valeurs d'un tableau. Je précise que le tableau peut être très grand ( > 100 Toujours Urgent§§ Valeur mAXI et MINI dans un tableau [ par kate1 ] Bonjour, J'ai besoin d'aide car je n'y arrive plus!!!J'ai construit un tableau MSHFlexgrid de plusieurs colonnes avec un nombre de ligne variable et u VB ET TABLEAU [ par nagattaque ] Bonjour tout le monde...Alors voila mon probleme :Je code en VBA sous excel2003.Je récupère le contenu d'une cellule dans une variable (juske la tout tableau [ par Bugs ] salut a tousvoila je suis débutant et je voudrai stocker des données fixe dans mon code vb sous forme de tableau, enfin de pouvoire y accéder de manie excel : récupération valeur d'un graph [ par mkits ] Bonjour,suite à différentes mesures relevées, j'ai créé un tableau, puis à partir de ce tableau une courbe (graph)... j'utilise un double décimètre et mshflexgrid... [ par allfab ] Bonjour à tous,J'utilise un mshflexgrid comme tableau. Je récupère une colonne du tableau dans un combobox et lorsque je prends une valeur dans le com Comment faire? [ par cesarius ] Explication de la situation :j'ai créé 2 tableau contigue sur une feuille.Le premier couvre les colonnes de C:I,Le deuxième couvre les colonnes de J:M


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.