passage à la caisse

Lieu d'échange sur les pratiques et les réalisations de scripts
Post Reply
mohjer
Posts: 58
Joined: Wed Jun 10, 2009 9:09 pm
Location: Tunis
Contact:

passage à la caisse

Post by mohjer » Wed Jan 11, 2012 11:28 am

Bonjour,

je n'arrive pas à mettre cet algorithme sous carscript

Variables : le prix d'un article: x
La somme à payer: S
Initialisation
S prend la valeur 0
Saisir x
Traitement
Tantque x  0
Saisir x
S prend la valeur S+x
Fin Tantque
Sorties

j'ai fait ceci :
var a=Input("Entrez a");
s=0;
s=a;
while (a!=0){
s=s+a;
var a=Input("Entrez a");
}
Println("Somme à Payer est"+s);

malheureusement, ça ne marche pas
merci de m'aider.

Afficher( "le total est : ",S)

User avatar
alain974
Posts: 150
Joined: Sat Jun 13, 2009 9:08 am
Location: Réunion

Post by alain974 » Wed Jan 11, 2012 2:26 pm

1) Déjà, le

Code: Select all

s=0;
s=a;
sonne faux, vu que si on met a dans s à la deuxième ligne, la première des deux devient inutile...

2) Ensuite, entre l'algorithme en pseudocode et la version JavaScript, il y a une interversion: la saisie de x (ou a) ne doit pas être faite au début mais dans la boucle while.

Ceci dit il est possible que le problème vienne du type de données (texte par défaut), et il est mieux de convertir le texte en nombre avec parseFloat():

En gardant les notations (S et x) de l'énoncé ça donne quelque chose comme

Code: Select all

var x;
var S=0;
x=parseFloat(Input("Entrez le prix du premier article : "));
S=x;//sans doute un oubli
while (x!=0){
	x=parseFloat(Input("Entrez le prix de l'article suivant : "));
	S=S+x;
}
Alert("La somme des prix est "+S);
Enfin, la présentation en trois phases (initialisation-traitement-sortie) se prête assez bien à un raccourci avec la boucle for de JavaScript, les points-virgules séparant les trois phases en question. C'est un peu spécial mais ça donne

Code: Select all

for(x=Input("premier"),S=parseFloat(x);x!=0;x=Input("suivant"),S=S+parseFloat(x));
Println(S);
Et après il y en a pour dire que Python est concis!

mohjer
Posts: 58
Joined: Wed Jun 10, 2009 9:09 pm
Location: Tunis
Contact:

Post by mohjer » Wed Jan 11, 2012 6:35 pm

Merci Alain de m'avoir éclairé, je n'y avais pas pensé à convertir le texte en nombre avec parseFloat().Encore merci.

Post Reply