Aide pour calculer max et min

exceldu33 -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je souhaiterai avoir de l'aide pour écrire un algorithme :
- qui demande la saisie de n nombres.
-qui calcule la moyenne des valeurs saisies, la plus grande valeur et la plus petite valeur.
J'ai réussi à écrire la saisie des n nombres, ainsi que le calul de la moyenne des valeurs, mais je n'arrive pas à afficher le max et le min des valeurs. Pouvez-vous m'aider ?
Voila ce que j'ai fait.

sub exo
dim i as integer
dim x as double
dim s as integer
dim n as integer
s=0
n = inputbox("donner un nombre n de valeurs")
while n<=0
msgbox("erreur")
n = inputbox("donner un nombre n de valeurs")
wend
for i = 1 to n
x(i) = inputbox("donner la saisie des n nombres")
s=s+x
next
msgbox(" la moyenne est " & s/n )
end sub
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut
Dans ta boucle for. Tu vas utiliser une variable max.
max=x(1)
Pour i de 2 à n
    Si max < x(i) Alors max=x(i)
Fin Pour
Afficher max

Pareil pour min ;)
A toi de le coder
4
saly_inf Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   4
 
d'accord avec toi...
mai il doit initialiser s par x(1) aussi puisque il existe au moin 1 valeur...sinon x(1) ne sera pas considérée..
@+
-1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
D'ailleurs. Tu n'as même pas besoin de tableau.
Ce programme a peut-être plein de fautes (ça fait longtemps le VB ^^). Mais l'idée est bonne. Sauf si tu peux avoir des éléments négatifs (mais bon une note négative, c'est rare ^^). Et une note supérieure à 21, faut être bon ^^.
Mais si ça te gène, tu peux tout simple faire la première itération à part pour initialiser max et min ;)
sub exo
dim i as integer
dim s as integer
dim n as integer
dim max as integer
dim min as integer

n = inputbox("nombre d'element dans la liste :")
max=-1
min=21
s=0
for i=1 to n
nb=inputbox("element numero" & i: )
if nb>max then
max=nb
end if
if nb<min then
min=nb
s=s+nb
next i
msgbox(max)
msgbox(min)
msgbox(s/n)
end sub
2
exceldu33
 
slt et merci, mais le problème est que quand je tapes l'algorithme le maximum et le minimum sotn égaux et c'est la saisie du dernier nombre qui est pris en compte. Voila c'est que j'ai fait. Y a t'il une erreur ?
sub exo
dim i as integer
dim x as double
dim s as integer
dim n as integer
dim max as integer
dim min as integer
s=0
n = inputbox("donner un nombre n de valeurs")
while n<=0
msgbox("erreur")
n = inputbox("donner un nombre n de valeurs")
wend
for i = 1 to n
x(i) = inputbox("donner la saisie des n nombres")
s=s+x
next
msgbox(s/n)
max=x(1)
for i = 2 to n
if max<x(i) then
max=x(i)
endif
next
min=x(1)
for i = 2 to n
if min >x(i) then
min=x(i)
endif
next
msgbox(max)
msgbox(min)
end sub
1
saly_inf Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   4
 
1er:vous pouvez faire une seule boucle "for"
2em:j'ai pas compris la déclaration ''dim x as double '' ,puisque x doit être un tableau pour stocker toutes les valeurs entrées.... est ce que x est un tableau?
-1
exceldu33 > saly_inf Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
Bjr saly,
En fait j'ai tapé "dim x as double" comme ça car je cherchais désespérement à trouver le max et le min, alors j'ai tout essayé, devrais-je écrire : dim x as integer ? Après je ne sais pas du tout si c'est un tableau, j'essaye de répondre à un exercice que je dois faire. Et on me demande d'écrire un algorithme :
-qui demande la saisie de n nombres
- et qui calcule ; le moyenne, la valeur max et la valeur min
j'ai réussi à faire tout sauf de calculer la valeur max et min
Je ne connais pas grand chose en informatique. Et pouquoi mon min et max sont égaux quand j'éxécute l'algorithme? Pourquoi c'est la saisie de mon dernier nombre qui est pris en compte ?
merci
0