Faire un petit prog pour un debutant !!!

Signaler
Messages postés
7
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
21 octobre 2004
-
Messages postés
283
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 juin 2006
-
hallo tout le monde , bon voila je debute en javascript et j aurai besoin d'un peu d'aide pour comprendre par quoi commencer pour faire mon programme

voila le dossier :
Écrire un programme JavaScript qui calcul les taxes d'un achat et la monnaie à rendre au client. Vous appelerez ce programme "tp2a.htm". Le programme commence par lire (dans une fenêtre prompt) le montant de l'achat, puis il ajoute les taxes (15,03%) et affiche le montant total (dans une fenêtre alert). Finalement, le programme demande le montant que le client remet au caissier (en utilisant une fenêtre prompt) et calcul la monnaie minimale à rendre au client. Pour calculer le montant à remettre vous n'avez qu'à soustraire le montant total (incluant les taxes) du montant remis. Ce montant à remettre devra toujours être entre 0$ et 5$ (0$ inclus mais 5$ exclus). Vous devez valider et émettre un message d'erreur et demander une nouvelle valeur (tant et aussi longtemps que la valeur ne soit pas valide) lorsque le montant à rendre ne correspond pas à l'étendue de valeurs mentionnée. Le montant à remettre doit être détaillé en précisant le nombre de pièces à rendre au client. Vous écrirez les détails des pièces à rendre au client directement dans une liste (utilisez ) sur la page Web dans le format suivant:

Montant à remettre: 3.89$
bullet 1 pièce(s) de 2$
bullet 1 pièce(s) de 1$
bullet 3 pièce(s) de 0,25$
bullet 1 pièce(s) de 0,10$
bullet 0 pièce(s) de 0,05$
bullet 4 pièce(s) de 0,01$

Votre programme doit calculer le nombre de pièces minimal. C'est-à-dire qu'il doit calculer le plus de pièces de 2$ possibles avant de vouloir distribuer des pièces de valeur inférieure et ainsi de suite. Dans l'exemple qui précède, un programme qui voudrait remettre 3 pièces de 1$ serait en erreur, car il peut remettre une pièce de 2$ et une autre de 1$.

Vous devez obligatoirement utiliser une (ou plusieurs) boucles while pour faire cet exercice.

--------------------------------------------------------------------------------
Donc ça c est le sujet , un peu long je l avoue mais bon
Ma question est tres simple comment elaborer le programme , par quoi commercer
bon au debut simple , un prompt entrée la valeur du produit, y ajouter 15,03%
ca ca va mais c'est apres que ca se gatte
pourriez vous m aider ?
merci

sammer

6 réponses

Messages postés
283
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 juin 2006

Structure de données:
- Un tableau T à deux dimension de taille nx2, n étant le nombre de pièce différente que tu as (ici 6):
Dans une dimension de ce tableau, à l'index 0 on notera le nombre de pièce de 2$ à rendre, à l'index 1 le nombre de pièce de 1$ à rendre, etc...
Dans l'autre dimension on notera la valeur des pièces

Algorithme:
n = 6;
i = 0;
Tant que i <= n faire
Tant que MontantTTC + T[i][1] <= MontantDonné faire
T[i][2] ++;
MontantTTC += T[i][1];
FinFaire
i++;
FinFaire
Messages postés
283
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 juin 2006

Une soluce:

<html>
<head>
<script>
function CalculMonaie(montantTTC,montantPaye)
{
nbPiece = 6;
//Construction de la SDD
t_piece = new Array(nbPiece);
for (var i=0; i < t_piece.length; ++i)
t_piece[i] = new Array(2);
//Initialisation de la SDD
t_piece[0][0] = 2;
t_piece[1][0] = 1;
t_piece[2][0] = 0.25;
t_piece[3][0] = 0.10;
t_piece[4][0] = 0.05;
t_piece[5][0] = 0.01;
for (var i=0; i < t_piece.length; ++i)
t_piece[i][1] = 0;

//Algorithme
index = 0;
HTMLSrc = "";
while(index < nbPiece)
{
while(montantTTC + t_piece[index][0] <= montantPaye)
{
t_piece[index][1]++;
montantTTC += t_piece[index][0];
}
HTMLSrc += "<li>" + String(t_piece[index][1]) + " pièce" + sOrNot(t_piece[index][1]); + " de " + String(t_piece[index][0]) + "$</li>";
index++;
}
document.write(HTMLSrc);
}

function sOrNot(nombre)
{
if(nombre > 1)
return "s";
else
return "";
}
</script>
</head>

<script>
montantHT = prompt("Entrez le montant HT","");
montantPaye = prompt("Entrez le montant payé","");
montantTTC = Math.round(montantHT * 115.03)/100; //Taxe + arrondi
while(montantPaye > montantTTC + 5)
{
montantPaye = prompt("La somme que vous donnez est trop importante, elle ne doit pas être de plus de 5$ supérieure à la somme TTC due. Entrez le nouveau montant payé","");
}
document.write("Montant HT: "+ montantHT+"$");
document.write("Montant TTC: "+ String(montantTTC) + "$");
document.write("Somme Payée: "+ String(montantPaye)+"$");
document.write("Somme à rendre: "+ String((montantPaye-montantTTC).toFixed(2))+"$");
document.write("Pièces à rendre");
CalculMonaie(montantTTC,montantPaye);
</script>

</html>
Messages postés
233
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
4 janvier 2007

Oh tu sais, moi, les maths ...
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
Bravo the_smurf, il ne lui reste plus que qqs détails comme l'alert avec le montant TTc.
Sammer, tu n'as plus qu'à nous montrer ton travail final, et tu pourras dire à ton prof que c'est grâce à the_smurf qu'il t'as donné une bonne note
Messages postés
7
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
21 octobre 2004

smurff serieux c est trop gentil de ta part
mais voila , est ce que tu aurais msn ou icq , que je puisse te parler ou simplement me donner ton email , car si je me retrouve a un exam avec le meme type de prob , ca me ferait chier de pas avoir tout compris.
( J'ai trop fait ça copier en math et je me suis retrouvé avec une sale moyenne ) enfin c'est y a longtemps et ça me tente pas de rentrer dans la facilité.
En tout cas chapeau serieux , si tu me dis que tu l as fait en 5 min ça m etonnerait pas du tout lol:)

mon msn : sammer@videotron.ca
mon icq : 20853543

encore merci
Math.
Messages postés
283
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 juin 2006

e-mail:
the_little_smurf@yahoo.fr

Au fait une dernière petite remarque tant que j'y pense. L'algorithme ne fonctionne que parce que les pièces ont été rangées dans le tableau dans l'ordre décroissant selon leur valeur... Important dans le cas où la valeur des pièces change ou si on rajoute les billets.

PS: En 5min non qd même pas, il m'a qd même fallu le temps de taper. Il y a qq années j'ai déjà eut un pb du même type (moi aussi je suis allé à l'école, enfin je crois) c'est pour ça que ça ne m'a pas pris beaucoup de temps.