Moyenne des valeurs contenue dans un tableau.

Signaler
Messages postés
6
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
25 novembre 2007
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
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

Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
6
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
25 novembre 2007

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.
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
6
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
25 novembre 2007

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.
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
6
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
25 novembre 2007

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!
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />