chewie_62
Messages postés22Date d'inscriptionmardi 24 avril 2007StatutMembreDernière intervention13 décembre 2012
-
2 juil. 2007 à 08:53
chewie_62
Messages postés22Date d'inscriptionmardi 24 avril 2007StatutMembreDernière intervention13 décembre 2012
-
10 juil. 2007 à 08:10
Bonjour à tous, je débute en VB6 et on m'a confié un programme !
Je reçois des valeurs en continue provenant d'un microcontrolleur sur une meme Textbox. Je souhaiterais récupérer toutes les valeurs et les mettre dans un tableau pour pouvoir faire en continue la moyenne des 20 dernières valeurs et afficher le graphique de la moyenne sur VB6.
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201259 2 juil. 2007 à 08:59
Salut,
Je en sais pas si ca peut te convenir mais regarde ceci
'Définition d'un tableau de Double
Dim MonTableau() As Double
'Dimensionnment du tableau
ReDim MonTableau(0)
'lorsque tu recois une valeur:
'Place la valeur dans l'indice supérieur
MonTableau(UBound(MonTableau)) = TaValeur
'Ajout d'un esapce dans le tableau
'Preserve permet de ne pas supprimer les valeurs contenues
'dans le tableau lors du redimensionnement
ReDim Preserve MonTableau(UBound(MonTableau) + 1), ----
[code.aspx?ID=41455 By Renfield]
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 juil. 2007 à 09:00
Bonjour,
En continu ?
Si oui, il va te falloir alimenter le tableau en même temps que la textbox et jouer avec l'événement change de la textbox (ce qui t'évitera un timer).
Seul truc : il te faudra constamment redimensionner ton tableau !
Tu pourrais éviter ce redimensionnement en utilisant une listbox en lieu et place d'un tableau
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 juil. 2007 à 09:48
Attends, là...
Comment tu peux voir le tableau ?
De quoi parles-tu ?
J'espère que tu ne vas pas finalement vous annobcer que tu développes sous VBA et qu'il s'agit d'un tableau Excel !...
Tu es ici dans la section VB6 de ce forum !!!
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201259 2 juil. 2007 à 09:48
Salut,
Effectue une boucle qui parcours le tableau et rempli une listbox
ou bien passe directement par la listbox comme le proposait [auteurdetail.aspx?ID=615490 jmfmarques]
chewie_62
Messages postés22Date d'inscriptionmardi 24 avril 2007StatutMembreDernière intervention13 décembre 2012 2 juil. 2007 à 09:53
ok merci !
non jmfmarques je ne vais rien annoncer . je voulais juste savoir comment voir les valeurs du tableau pour pouvoir en faire la moyenne derrière !
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201259 2 juil. 2007 à 09:59
Salut,
Dans ce cas si c'est pour le calcul des moyennes, inutile d'utiliser une ListBox, tu parcours le tableau dans une boucle pour ressortir la somme, puis tu divie par le nombre d'élément du tableau;
Attention a la maniere dont tu as redimensionner ton tableau, tu auras peu être un élément toujours vide.
autre idée est de memoriser la somme à chaque fois que tu recoit une valeur (+ le nombre de valeur recues).
Cela t'éviteras peu être aussi l'utilisation du tableau.
chewie_62
Messages postés22Date d'inscriptionmardi 24 avril 2007StatutMembreDernière intervention13 décembre 2012 2 juil. 2007 à 10:28
j'ai utilisé le code que tu as écrit jrivet pour la déclaration du tableau, mais je ne vois pas comment faire la boucle pour ressortir la somme...
Je suis un débutant en matière de programmation. dsl
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 juil. 2007 à 10:49
Re,
Pourquoi faire une boucle alors qu'il suffit :
-d'une variable qui s'incrémente par le dernier ajout (àcahque insertion)
- d'en profiter pour "tirer" dans la foulée la moyenne ( = valeur de cette variable / nb d'articles du tableau ou de la listbox).
Neron2005
Messages postés63Date d'inscriptiondimanche 5 novembre 2000StatutMembreDernière intervention 1 décembre 2013 2 juil. 2007 à 11:57
En faite, il faudrait que tu memorise une moyenne qui change avec le nombre de donné que tu y aporte. En gros ca donne :
Dim nb 'nombre de valeur dans la moyenne
Dim m 'moyenne
Dim nVal 'la valeur que tu ajoute
m = ( (m * nb) + nVal ) / (nb + 1)
nb = nb + 1
en gros ca donne la moyenne est egale a l'ancienne moyenne multiplié par son coeficient (c'est a dire le nombre de valeur precedante) + plus la derniere valeur on aura donc l'equivalence de nb valeur + 1 donc pour faire la moyenne on divise par le nombre de valeur plus une, ensuite on incremente nb pour savoir combien il y a eu de valeur et c'est finit. Enfin non on recomence ensuite lorsque l'on fait un autre calcule.
Neron2005
Messages postés63Date d'inscriptiondimanche 5 novembre 2000StatutMembreDernière intervention 1 décembre 2013 2 juil. 2007 à 13:27
le truc du toto ca marche que si ta des petite valeur et que t'en a pas trop sinon t'arrive vite a depacement de capacite en long je parle et apres en double c'est pas precis si tu depace 10 ^ 14 mais sinon ca revient au meme.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 2 juil. 2007 à 14:37
Comme tu parles de moyenne sur les 20 dernières valeurs, il faudra que tu refasses ton tableau dès qu'il y aura 20 valeurs entrées.
Donc
Tableau(0) = Tableau(1)
Tableau(1) = Tableau(2)
...........
Tableau(19) = NouvelleValeur
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 juil. 2007 à 15:24
je rectifie
"ou garder le truc de la variable toto et faire une soustraction de la valeur du 1er article si le nombre est supérieur à 20 "
par
"ou garder le truc de la variable toto et faire une soustraction de la valeur de la valeur nombre-20 si le nombre est supérieur à 20 "