Mon code pour calculer une moyenne ne marche pas!

Résolu
lynophryne1 Messages postés 4 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 décembre 2005 - 4 déc. 2005 à 19:03
lynophryne1 Messages postés 4 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 décembre 2005 - 4 déc. 2005 à 20:10
bonjour à tous!

voilà je débute en prog et j'ai un petit problème sur un exercice d'entrainement:

le but est de calculer la moyenne d'un nombre indeterminé de notes, puis pour terminer la saisie l'utilisateur doit entrer la valeur 0 qui ne dvra pas être compté dans la moyenne.(sachant que les notes seront forcéments positives)

voici mon code, je ne sais pas pourquoi il ne marche pas bien (quand on rentre les valeurs 8 et 12 il me met 1), et j'aimerais bien savoir ce qui ne vas pas!



Dim saisienotes
As
String



Dim totalnotes
As
Double



Dim moyenne
As
Double



Dim msg
As
String



Dim saisieok
As
Boolean



Dim I
As
Integer



Dim nombrenotes
As
Double



Sub main()


I = 0


totalnotes = 0



Do


saisienotes = InputBox("tape ta notes mec!", , "Note N°" & nombrenotes + 1)


I = I + 1


nombrenotes = nombrenotes + 1


totalnotes = saisienotes + I


moyenne = totalnotes / nombrenotes



Loop
Until saisienotes = 0


MessageBox.Show(moyenne)



End
Sub

Merci de m'avoir lu

6 réponses

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
4 déc. 2005 à 19:36
dim i as single
dim n as integer
dim s as string
do
s=inputbox("Tape la note:")
if len(s) then
i=i+s
n=n+1
else
exit do
endif
loop
msgbox "moyenne : " & i/n

@+


E.B.
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 déc. 2005 à 19:19
Euhhh, es-tu sur que ton calcul te donne une moyenne, moi non, ou alors j'ai rien compris à ton code.





Dim saisienotes As String

Dim totalnotes As Double

Dim moyenne As Double

Dim nombrenotes As Double



Sub main()



nombrenotes = 0

totalnotes = 0



Do



saisienotes = InputBox("tape ta notes mec!", , "Note N°" & nombrenotes + 1)



nombrenotes = nombrenotes + 1



totalnotes = totalnotes + CDbl(saisienotes)



Loop Until CDbl(saisienotes) = 0



moyenne = totalnotes / nombrenotes



MsgBox moyenne



End Sub





<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
lynophryne1 Messages postés 4 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 décembre 2005
4 déc. 2005 à 19:24
à vrai dire, je suis sur de rien!!!

il y a peut être un problème de conception, mais je suis incapable de comprendre ce qui cloche ici!

même avec les conversions ça ne marche pas!
0
lynophryne1 Messages postés 4 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 décembre 2005
4 déc. 2005 à 19:48
je comprend pas bien ton code Erbasoft, qu'est excactement le "len(s)"??

l'utilisateur dand l'exo doit taper "0" pour arrêter la saisie
0

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

Posez votre question
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
4 déc. 2005 à 20:04
Oula ton exo pronne l'erreur !
car arreter l'execution si un eleve a un zero ça fausse tout !
dans mon exemple la moyenne est calculé si l'utilisateur clique ok sans rien taper
ou clique sur annuler

@+


E.B.
0
lynophryne1 Messages postés 4 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 décembre 2005
4 déc. 2005 à 20:10
oui , merci beaucoup je viens de comprendre.

en fait l'exercice précise bien que les notes doivent être positives ce qui exclu donc le 0, mais bon c vrai que c'est un peu tordu!

comme toujours, pourquoi faire simple quand.....

Merci encore!

@+

Lyno
0
Rejoignez-nous