[VB] Problème avec ce code :

NezEnMoins Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -  
NezEnMoins Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -
Tout d'abord bonjour..
J'ai un problème avec le code suivant :
Dim reste as double
dim P(15) as double
dim i as integer
dim q(15) as integer
dim monnaie as double

[...]
reste = monnaie - total

P(1) = 500
P(2) = 200
P(3) = 100
P(4) = 50
P(5) = 20
P(6) = 10
P(7) = 5
P(8) = 2
P(9) = 1
P(10) = 0.5
P(11) = 0.2
P(12) = 0.1
P(13) = 0.05
P(14) = 0.02
P(15) = 0.01

While (reste <> 0) And (i < 16)
q(i) = Int(reste / P(i))
reste = reste - q(i) * P(i)
i = i + 1
Wend

[...]


Je ne vous ai pas tout marqué, mais j'ai un problème, lors du pas à pas détaillé sur la ligne 'q(i) = Int(reste / P(i))', je mets ma souris sur reste et il y a marqué "reste='0.05'" et sur P(i) il y a marqué "P(i)='0.05", et je ne comprend pas pourquoi il m'affiche "q(i)='0'" alors que 0.05/0.05=1 ! !
Aidez moi s'il vous plait..
Merci
A voir également:

2 réponses

Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
salut,

Tu dis que tu es en mode pas à pas, et que tu mets le curseur sur les variables pour voir leur contenu. Donc cette commande n'a pas encore été exécutée. Donc c'est normal que q(i) valle 0 et non 1...

enfin je crois :-)
0
NezEnMoins Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   4
 
Ne t'inquiète pas je sais me servir de VB et je sais très bien me servir du pas à pas détaillé.. C'est pourquoi je trouve ce résultat absurde..
Aidez moi...
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
j'ai testé ton code pas à pas et j'ai comme résultat 1

Cependant il y a des choses dans ton code qui ne me semble pas trés bien.

Par exemple tes tableaux sont declarés (15) c'est-à-dire que chaque tableau contient 16 éléments ( de 0 à 15)

je ne vois pas p(0)

quand tu dit i < 16 i commence avec quel valeur
as-tu utilisé Option Base 1 pour commencer les indexes des tableaux à 1 ?

Tu peut utiliser debug.print ou msgbox pour voir les résultats, pas besoins de se balader avec le pointeur de la souris.

While (reste <> 0) And (i < 16)
q(i) = Int(reste / P(i))
msgbox "pour i = " & i & " : " & "q(" & i & ")" & " = " & q(i)
reste = reste - q(i) * P(i)
i = i + 1
Wend
0