Algorithme ( bloquer )
RésoluVoila mon probleme : Je dois ecrire un algorithme qui permet de calculer le prix moyen d'une liste de prix. On demandera le nombre de prix dans ma liste. Bon je comprend ce que je dois faire mais je n'arrive pas a voir qu'elles instructions utilisées sachant qu'il y a une boucle. Et de plus je ne sais pas commet jevsais faire pour faire la somme des prix .
Merci a toute aide de votre part
--
Vis...Ta...poubelle
Configuration: Windows XP Internet Explorer 6.0
26 réponses
Le fil porte sur la création d’un algorithme pour calculer le prix moyen d’une liste en demandant le nombre de valeurs et en gérant les entrées par boucle. Des interventions proposent une boucle avec saisie terminée par une valeur spéciale (par exemple 'f'), accumulation de la somme et division ensuite, ou une boucle for lorsque le nombre est connu à l’avance. Une autre piste consiste à calculer la moyenne directement dans la même boucle et, si possible, sans stocker tous les prix, ou bien en stockant les valeurs dans un tableau. D’autres nuances évoquent le mode console, les variantes entre entrée répétée et fin par une valeur, et l’intérêt d’optimiser la boucle selon le contexte d’utilisation.
-
En fait moi je pensais lui demander le nombre de valeur à entrer au départ et lui proposer une extension par la suite au cas ou il ait eu un imprévu, ou alors lui demander à chaque fois meme si c'est vrai que c'est relou.
-
Je ne trouve pas que ce soit moins ergonomique de demander a l'utilisateur si il a encore une valeur a rentrer plutôt que de lui dire:
"veuillez saisir une valeur ou tapez f si vous voulez sortir"
enfin de toute façon déjà a la base le C n'est pas terrible pour tout ce qui est interface alors ... -
Une autre variable oui pourquoi pas mais elle sert à rien... ($saisi_utilisateur est LA variable (^^)) Et c'est ce qu'il fait l'algorithme là non, à la demande de l'utilisateur on sort de la boucle, on pourrait aussi afficher la somme à chaque fois et lui demander s'il veut rajouter un prix ou non, mais là c'est moins ergonomique.
-
Oui mais niveau interface je trouve que ton code n'est pas très intéressant.
pour ma part j'aurais plutot creer une autre variable pour gerer la sortie de boucle sur la demande de l'utilisateur!
Mais sinon concernant l'enonce il a bien precise qu'il demandé au prealable le nombre de prix a rentrer à l'utilisateur -
Azerwithe, le topic a été marqué comme résolu, et de plus ta solution a déjà été proposé et reconnu comme bonne.
Moi j'aurais juste fais un for a la place du while.-
Ben, non justement...
Que le topic soit résolu ou pas en s'en fou le but c'est d'apprendre en résolvant un problème et non résoudre un problème...
Et après relis mon algo tu verras que j'utilise une variable en moins puisque je ne demande pas un nombre définis de prix ... je pense que c'est plus pratique après faut voir avec l'énoncé exacte mais la solution est intéressante
-
-
A mon avis tu devrais faire un truc dans le genre:
Tu devrais faire une boucle while avec un ''if' au début pour savoir si le prix indiqué par l'utilisateur est différent de ''f''alors demandé la saisie d'un prix etc (faire la concaténation avec la var somme ((s=s+m ou s =+m)) et quand l'utilisateur rentre ''f'' alors Tu sors avec un break et tu affiche la somme
Comme cela la personne n'a as à indiquer le nombre de prix qu'il a rentré et avec un compteur tu peux afficher le nombre de prix.... je pense que c'est mieux
Si je suis pas claire voici:
Declaration
p(prix),nv(nombre de valeur),pm(prix moyen),s(somme):réel
Debut
nv<-----0
s<-----0
tant que 1 (toujours vrai)
....si p == f ( 'f' pour fin)
........finir la boucle tant que (break)
....sinon
........Afficher ("Saisie du prix:")
........Saisir(p)
........nv<----nv+1 (ou nv++)
........s=s+m
....fin de si
fin de tant que
pm<----s/np
Afficher("Le prix moyen est de:",pm)
Voilà quest ce que vous en pensez ? -
Et le francais c'est la base de tous les forums...
Il suffit de bien parler francais et de bien lire ce qui est écris pour comprendre ce que la personne attend. -
l'algoritme c'est la base tout les langages
il sevait de faire la traduction de l'alg en la langage c ou vb .... -
lol j'avais pas vu xD donc c'est bien sa alors il ne me reste plus qu'a le traduire en C et a le tester
bah merci a tout ceux qui ont pris le temps de m'aider et je vous souhaite une bonne fin de journée ^^ -
Voila c'est ca!
en faisant attention au niveau de ta boucle, suivant si tu fais un do while ou un simple while tu pourrais te retrouver avec un prix en plus ou en moins ;) -
Oki c'est bien ce que je pensais ^^ merci
donc sa donnerait sa
Algo prix_moyen
Declaration
p(prix),np(nombre de prix),nv( nombres de valeurs),pm(prix moyen),s(somme):réel
Debut
Afiicher("De combien de prix sera composer votre liste ? :")
Saisir(np)
nv<-----0
s<-----0
Repeter
Afficher ("Saisie du prix:")
Saisir(p)
nv<----nv+1
s=s+m
jusqu'a nv==np
pm<----s/np
Afficher("Le prix moyen est de:",pm)
Normalement je suis bon la car la il pendra en compte tous les memes vu qu'il s'aditionne au fur et a mesure
-
il ne me semble pas qu'il voulais l'algorithme tout fais :/
il n'y a la dedans aucun interet... -
salut
voila le programme en algorithme
en va demeande a entrer le nmbre de prix dans la liste
il exest 2 methode
la 1er en conserve tout les prix dans une tableux et en faire les calcule sur le tableu
ou bien en fait le programe suivant
var nbprix : entier prix,somme,moyenne : real
i :entier
debut
ecrire('entre le nb de prix ')
lire(nbprix)
somme=0 en inisialiser la somme
pour i=0 à nbprix faire
ecrire('entre le prix num',i)
lire (prix)
somme=somme+prix
fin pour
moyenne=somme/nbprix
ecrire("la moyene et ",moyenne)
fin
voila mon msn mustapha_tsdi@live.fr
www.kolchi.en.ma -
Ta derniere remarque est juste!
c'est pourquoi il faut que tu fasse le calcul de ta moyenne dans la meme boucle.
et au lieu de faire un do while, tu peux faire un for si tu connais par avance le nombre de prix, ca t'economise la variable nv je pense. -
Bon je pense etre sur la bonne voie ( j'espere xD)
sa donnerait quelque chose du genre
Algo prix_moyen
Declaration
p(prix),np(nombre de prix),nv( nombres de valeurs),pm(prix moyen):réel
Debut
Afiicher("De combien de prix sera composer votre liste ? :")
Saisir(np)
nv<-----e
Repeter
Afficher ("Saisie du prix:")
Saisir(p)
nv<----nv+1
jusqu'a nv==np
Voila pour le moment (il n'est pas complet je vous rassure mais c'est juste pour controler) donc pour expliquer un peu c'est la boucle pour saisir les prix en fonction du nombre de prix choisie.
Mais je me demande si je fais sa s'il ne changera pas les prix que l'on a saisi et ne prendra en compte que le dernier choisi pour faire la moyenne ? -
Ok
Et tu souhaite demander a l'utilisateur avant combien de note il va rentrer ou de le faire au coup par coup? -
Non on s'en fiche c'est juste utile pour faire la moyenne (le but est de faire une moyenne d'une liste tout en ignorant de combien de prix ets composer cette liste ) pas besoin de faire un tableau
-
comme je l'ai dis plus haut tout depend de si tu dois garder l'historique des prix entrer ou pas?
si ce n'est pas le cas ca ne sers a rien de faire un tableau a part a bouffer de la place pour rien -
je suis a l'ETS IRIS
Bon la jsuis en train d'essayer avec la boucle repeter ( do while) mais je n'ai pas encore fini et je ne vais pas tarder a aller manger donc s'il ny a pas de reponses c'est normal -
Ben, deux possibilité:
-tu stocks les prix dans un tableau donc tu auras le nombre de prix grâce à un fonction C (count en PHP). et après tu fais un while c'est assez simple
-Tu demandes à l'utilisateur combien de prix il veut mettre puis tu fais un while tu demande le premier prix, tu le mets en la variable 'entré'. et tu l'addition à la var 'somme' qui vaut zéro au départ. après pour la deuxième entré de l'utilisateur tu vas mettre l'entrer dans 'entré' et tu vas l'ajouter à 'somme'
Bon, j'ai pas fait l'algo pour pas que ce soit non plus trop simple donc envoie nous ce que tu arrives à faire
(tu es dans quel école ?)
- 1
- 2