Moyenne des valeurs contenue dans un tableau.

buddydublin Messages postés 6 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 25 novembre 2007 - 26 oct. 2007 à 14:38
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 27 oct. 2007 à 17:47
Bonjour,

Voilà j'ai un problème j'ai declaré un tableau de taille non fixé, je travaille en mode console, et j'aimerai faire la moyenne de toutes mes valeurs de mon tableau  et le mettre dans un autre nom telle que "moyenne".
  Je suis débutant je ne connais pas bien les noms à employer pour les varaibles que j'ai definit au début de mon programme.
 
Merci d'avance pour vos réponses.

8 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 oct. 2007 à 14:56
Salut,
le plus simple serait de faire la somme des éléments et de diviser par le nombre d' éléments.

Mais montres nous déjà un bout de code pour voir de quoi il s' agit.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
buddydublin Messages postés 6 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 25 novembre 2007
26 oct. 2007 à 15:13
For



i = 1

To
i
bmi(i) = weight(i) / (height(i) * height(i))            
console.Write(

" "
& names(i) &

" bmi is: "
& bmi(i))
console.ReadLine()


Next
i

bonjour,

Le sujet de mon programme est de demander à un nombre non déclaré de personne leurs nom,poid,taille afin de calculer leur masse corporel (Bmi).
La parti du programme que j'ai inséré est la partie calcul du bmi pour chaque personne, j'aimerai juste faire la moyenne de toutes les valeurs calculé après cette partie de programme.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 oct. 2007 à 15:28
tu ajoutes une variable SommeDesValeurs
Dim SommeDesValeurs As Double
SommeDesValeur=0
For i = 1 To i
bmi(i) = weight(i) / (height(i) * height(i))           
SommeDesValeurs=SommeDesValeurs+bmi(i)
console.Write( " " & names(i) & " bmi is: " & bmi(i))
console.ReadLine()
Next i


a la fin
SommeDesValeurs/i te donne la moyenne











<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 oct. 2007 à 15:47
For i = 1 To UBound(bmi)

et
SommeDesValeurs/UBound(bmi)

UBound(bmi) renvoie la taille de ton tableau
 

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
buddydublin Messages postés 6 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 25 novembre 2007
26 oct. 2007 à 18:22
Cela fonctionne lorsque je regarde avec un point d'arrêt dans la boucle "for" ,les valeurs de SommeDesValeurs je retrouve bien  l'addition de tous les bmi.
Cependant une fois sortie de la boucle "for" et que je pose "moyenne = SommeDesValeurs / i" , la console me dit "non numerique" pourtant j'ai déclaré mes variables en "single" pour tous sauf pour i.

Merci en tout cas pour la précedente réponse j'ai appris quelque chose.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
27 oct. 2007 à 00:45
désolé de n' avoir pyu répondre à temps..
J' espère qu' entre temps tu as pu avancé .
Toujours est-il que tes variables doivent être déclarées en Double parce qu' elles risquent de comporter des décimales (division oblige).
C' est pourquoi je t' ai mis:
Dim SommeDesValeurs As Double
Pour la moyenne tu dois faire pareil.
Dim Moyenne As Double
Moyenne = SommeDesValeurs / UBound(bmi)
UBound(bmi) et non pas i .
Le i est utilisé comme compteur dans ta boucle For.
A la fin de celle-ci i est égale au nombre d' individus + 1.
De plus elle ne doit pas être utilisée à double titre:Compteur et Limite de la boucle, comme tu l' as fait dans l' exemple:(<strike>For i=1 To i )</strike>

Bonne continuation et bonne fin de soirée.
A+

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
buddydublin Messages postés 6 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 25 novembre 2007
27 oct. 2007 à 11:56
bonjour;

Maintenant cela fonctionne parfaitement, merci d'avoir résolu mon problème, je pourrai donc recomander ce forum.
Avoir une réponse à mon problème en une journée est une réussite.
Merci beaucoup!
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
27 oct. 2007 à 17:47
d' habitude c' est en moins d' une journée..
mais là, il a fallu que ça traine un peu.. faute de temps .
j'  espère que tu reviendras plus souvent.
Tout le monde ici est dispo à aider Tout le monde.
Il suffit de demander.
 Bonne continuation et Bonne fin de journée.











<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
0
Rejoignez-nous