Bonjour,
j'ai un petit problème de code sur VB (voir http://www.developpez.net/forums/d74...e/#post4314762)
si quelqu'un peut me filer un coup de main le code que j'ai écrit bug.
Bonjour,
j'ai un petit problème de code sur VB (voir http://www.developpez.net/forums/d74...e/#post4314762)
si quelqu'un peut me filer un coup de main le code que j'ai écrit bug.
Pourrais tu mettre les lignes de code qui concerne ton problème s'il te plaît ?
A savoir le calcul de la moyenne cumulée ainsi que les infos sur les variables utilisés.
Oki voila le calcul de la frequentation moyenne :
frequentationMoyenne = moy_freq(nb_simu)
Txmoyfreq.Text = frequentationMoyenne
celui la il marche nickel chrome, il utilise une fonction moy freq qui est dans le module, et voila le calcul (qui plante) de la moyenne cumulée :
Dim freqtot As Integer
For i = 1 To no_sem
freqtot = moy_freq(no_sem)
Text2.Text = freqtot
Next i
Pour commencer :
C'est quoi no_sem ? Le numéro de la semaine en cours?
Ensuite moy_freq renvoit quoi ? la moyenne de la semaine no_sem?
no_sem c'est le numéro de la semaine courante depuis le début, nb_simu c'est le nombre de semaines de simulation le problème c'est que cette variable est limité donc je ne peux pas l'utiliser quand je relance l'appli.
Voila moy_freq :
Function moy_freq(nb_sem As Integer) As Byte
'retourne la moyenne de la fréquentation sur les nb_sem semaines passées
Dim t As Integer
Dim i As Integer
t = 0
For i = 1 To nb_sem
t = freq(i) + t
Next i
moy_freq = Int(t / nb_sem)
End Function
Ici, il ne faudrait pas faire :Dim freqtot As Integer
For i = 1 To no_sem
freqtot = moy_freq(no_sem)
Text2.Text = freqtot
Next i
freqtot = freqtot + moy_freq(no_sem)
et a la sortie de ta boucle feqtot = freqtot / nb_sem
Hum j'ai essayé ça ne marche pas, ça m'affiche un chiffre improblable puis l'appli plante... merci quand même.
Ton idée est pas mal en fait, mais il faudrait diviser par le nombre de fois ou l'utilisateur a appuyé sur le bouton simuler (lancement de l'appli) et non le nombre de semaines, le problème c'est que je ne sais pas comment coder ça ^^, et il doit y avoir peut être plus simple.
Après je ne comprends pas pourquoi ça plante au bout de la deuxième simulation...
Et si tu fais :
POUR i = 0 A NB nb_simu
freq_tot = freq_tot + moy_freq(nb_simu)
FIN POUR
freq_tot = freq_tot / nb_simu
?
Car de ce que je comprends tu cherche à faire la moyenne sur le nombre de simulation et non le nombre de semaine.
Et as tu executer en pas par pas pour voir où le programme crasher ?
Ca se trouve cela ne vient pas du tout de ton calcul.
Autre option :
essaye de faire un try catch et de récupérer l'exception afin de l'écrire.
Il y a du mieux l'appli ne plante plus, mais le chiffre affiché est totalement improblable (frequentation du bar de 100 personnes) donc la moyenne doit être comprise entre 0 et 100, la 4880. Je vais continuer à me creuser la tête ^^.
Edit : Plus je réfléchis plus je me dis qu'il faudrait que je trouve quelque chose du style une variable qui indique le nombre de fois que l'utilisateur a appuyé sur le bouton, comme ça je n'aurais plus qu'a additionné les moyennes ou les bonnes semaines et les divisés par cette variable, enfin c'est juste une idée comme ça.
J'ai envie d'essayer de créer une variable qui comptabilise le nombre de fois ou le bouton a été appuyé, si quelqu'un a la solution code ^^.
C'est ce que tu veux non ?nb_simu c'est le nombre de semaines de simulation
En fait j'explique l'appli : bar capacité de 100 pers, on simule de comportement de 100 personnes, il y a un bouton simuler.
On inscrit le nombres de semaines que l'on souhaite simuler (max 80 je crois), nb_simu si je me trompe pas correspond à ce chiffre.
Mais le souci c'est que je dois faire la moyenne de frequentation du bar sur nb_ simu mais également faire une moyenne cumulée c'est à dire que si je réappuie sur simuler (on peut inscrire un autre nombre de semaine), et que l'appli me calcule la moyenne sur le cumul des deux.
En gros j'ai une moyenne simple (ça ça marche) que je calcule sur nb_simu et une autre qui est calculé sur le total.
Je sais pas si j'ai été très clair, c'est assez compliqué que de prises de têtes.
Edit : En réappuyant sur le bouton simuler la moyenne simple se réinitialise et se calculer sur le nouveau nombre de semaines inscrit, par contre la cumulée est recalculer avec les nouvelles semaines.
Partager