Aide pour calculer max et min [Fermé]

Signaler
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
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

3 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 688
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
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57044 internautes nous ont dit merci ce mois-ci

Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
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..
@+
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 688
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
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
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
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?
>
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008

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