travail à faire en javascript :s

Statut
N'est pas ouverte pour d'autres réponses.

Mouflette

Elite
Voilà j'ai un travail à faire en 2 scéances d informatique et qui me semble impossible à faire :-( je viens de passer + de 2h à me tirer les cheveux pour voir cmt le réaliser et ma feuille est toujours blanche...

Je suis en 2eme BA d ingénieur industriel et j ai choisi l option construction donc l informatique de ce style ne va pas me servir à grand chose. Malgré ma bonne volonté je n arrive pas à voir comment il faudrait procéder pour réaliser ça, si qqun pourrait me dire en grande ligne cmt débuter ça serait gentil...tout en sachant que je n ai que les base du javascript (enfin normalement je sais tout sur ce qu'il faudrait utiliser :roll: ). Je ne demande pas qu'on bosse à ma place j'aimerais juste des explications et des orientations il faut que je comprenne ce que je suis censée faire pour le faire :)

Voici l énoncer :


Enoncé

Votre programme doit aider la société Schtroumf pour la paye de son personnel (10 personnes max).
Monsieur Schtroumf, le directeur, est de la vielle école et à chaque fin de mois, il tient à donner lui-même à chaque membre du personnel une enveloppe contenant le salaire de la personne en argent liquide.
En fonction des salaires des différents membres du personnel, le directeur doit savoir combien de pièces et billets des différentes valeurs il doit aller chercher à la banque et comment les répartir dans les différentes enveloppes.
Les salaires seront compris entre 500 et 5.000 ¤ et votre programme mémorisera dans des tableaux toutes les données et résultats nécessaire pour afficher ensuite données et résultats dans la page en cours.



Conseil :

travailler en centimes d’euro permet d’utiliser des entiers et donc de faire des divisions entières (quotient entier) et calculer le reste de cette division ( 13 % 5 = 3 ).
Pour transformer un réel en entier, vous pouvez utiliser la fonction Math.floor ( var monEntier =Math.floor (monReel) ; )
Ou la fonction parseInt( ) si on part d’une chaîne de caractère.
Pour faire un tableau à 2 dimensions, il suffit de faire un tableau dont chaque case est un tableau

Exemple :
var monTableau= new Array(new Array(11,22,33),new Array(111,222,333),new Array(1111,2222,3333));
document.write(monTableau[3][1]) ; // affiche 1111



Merci à ceux qui répondront...(j'espère qu'il y en aura quelques uns ^^)
 

Froggy

fake geek
je suppose que créer ton tableau et mettre tes données dedans ne pose pas trop de problème donc je vais juste te dire comment faire pour trouver le nombre de pièces/billets que tu dois donner à chacun ;)

il suffit de diviser le montant du salaire par les billets/pièces en commençant par le plus gros et de vérifier à chaque fois s'il y a un reste à cette division. Auquel cas tu divise le reste par le billet suivant dans la liste etc... jusqu'à ce que le reste soit égal à 0 :)

ensuite tu parcours ton tableau "verticalement" (donc par colonne) pour savoir combien de billet il doit aller chercher à la banque.

voilà ;)
 

Bingo

Beer Addict
C'est quoi ton problème ? Décomposer une somme en un nombre de billets ?

Si tu as le tableau qui va contenir le salaire décomposé de ton employé :
monsalairedecompose = array(array(50000,0), array(20000,0), array(10000,0), ... , array(1,0))

Tu prends ton salaire et tu le multiplies par 100 pour l'avoir en centime (salairecentimes = Math.floor(salaire *100))

Tu fais une variable pour le salaire restant (salairerestant)

Tu circules dans ton tableau, et à chaque valeur de billet tu sotckes le nombre de billet nécessaire (c'est le nombre entier de billets qui divise le salaire restant).
Tu stockes le salaire restant pour la boucle suivante (c'est le modulo du salaire restant par la valeur du billet).

for i = 0 jusqu'au bout {
monsalairedecompose[1] = Math.floor(salairerestant / monsalairedecompose[0] );
salairerestant = salairerestant % monsalairedecompose[0]
}

Enfin c'est l'idée, il faut mettre tout ça en javascript quoi !
 

Maleki

Pain in the ass !
J'ai commencé un petit bout de code à ma manière en javascript pour te donner la marche à suivre :
(Cela seulement pour le salaire d'une personne)
Sur une page html, il y a 3 champs de type texte + un bouton.
- Le premier, on y rentre le salaire et son ID est "Salaire".
- Le second affichera le nombre de billets de 500 qu'il peut y avoir en fonction du salaire entré. ID = "Billet500"
- Le troisième, même chose mais pour les billets de 200. ID = "Billet200".
Le bouton possède un évenement Onclick.
Code Javascript :
Code:
function CalculerSalaire()
{
  var Total, Reste, NbBillet;

  //On stocke le salaire entré dans Total
  Total = document.getElementById('Salaire').value;

  //Dans Reste, on stocke le reste de la division entière 
  //Ex: 800 % 500 = 300  
  Reste = Total % 500;

  //On stocke dans NbBillet le nombre de billets de 500 qui y aura
  //Cela donne un nombre réel Ex: 700 / 500 = 1,4 donc 1 billet
  NbBillet = Total / 500;
 
  //On va donc arrondir au nombre entier inférieur Ex: 1,4 vaudra 1
  NbBillet = Math.floor(NbBillet); 

   //On affiche le résultat dans le 2ème champ
  document.getElementById('Billet500').value = NbBillet;

  //Maitenant on vérifie si il reste quelque chose après la division
  if(Reste > 0)
  {
    //Si oui, on stocke dans NbBillet le nbre de billets de 200 qui y a dans Reste
    NbBillet = Reste / 200;

    //Et on l'arrondit une nouvelle fois
    NbBillet = Math.floor(NbBillet); 

    Reste = Reste % 200;

    document.getElementById('Billet200').value = NbBillet;
    
   //Faire la suite avec les autres billets...
  }
  else
    //Si il n'y a aucun reste, on affiche 0
    document.getElementById('b200').value = 0;
 }
Il faudra ensuite modifier pour stocker tout ca dans un tableau, calculer pour les autres salariés, les totaux, ... ect

Maintenant, il doit surement avoir plus simple mais j'espère quand même que cela pourra t'aider pour la suite... ;)
 
1er
OP
Mouflette

Mouflette

Elite
Merci bcp namo j arrive a comprendre mtn +/- la methode a appliquer :d

c est qu'on a appris les base du javascript en cours par "correspondance" (sur le net quoi) donc j'ai surement tout vu mais bon rassembler tt ce que j ai appris pr faire ca je ne voyais pas quoi faire :-s

mtn c est deja plus clair merci ;)
 

- Lo0

Elite
Mmmmmm


Moi j'aurais dis simplement d'utiliser les divisions entiere.

nombre de billet de 500 = salaire / 500
nombre de billet de 200 = ( salaire - nombre de billet de 500 * 500 ) / 200
...

non ?
 

Froggy

fake geek
- Lo0 a dit:
Mmmmmm


Moi j'aurais dis simplement d'utiliser les divisions entiere.

nombre de billet de 500 = salaire / 500
nombre de billet de 200 = ( salaire - nombre de billet de 500 * 500 ) / 200
...

non ?

c'est ce que je dis à la première réponse ;)
 
1er
OP
Mouflette

Mouflette

Elite
je verrai...bcp d eleve trouve le delais trop court et on bcp de questions vis a vis de cmt realiser ce truc inutile et chiant :d dc je vais me renseigner autour de moi pr voir cmt ils vont faire et si ca va pas aller questionner les profs...
merci a tous d avoir repondu :)
 
1er
OP
Mouflette

Mouflette

Elite
J ai encore un petit probleme...que veux dire => isNaN(salaire) ???

je ne pense pas avoir vu ca et si oui j ai oublié la signification de isNaN()... et qu est ce que ce s entre crochet??? important???

si qqun pouvais m expliquer ca en qqs mots ca serait gentil :)
 

Ahava

Revenant
Mouflette a dit:
J ai encore un petit probleme...que veux dire => isNaN(salaire) ???

je ne pense pas avoir vu ca et si oui j ai oublié la signification de isNaN()... et qu est ce que ce s entre crochet??? important???

si qqun pouvais m expliquer ca en qqs mots ca serait gentil :)
Cette fonction évalue un argument pour déterminer s'il ne s'agit pas d'un nombre (NaN : Not a Number).

salaire[] est un tableau d'entiers (représentant des salaires), et salaire est le salaire dans le tableau à la position s


:)
 

guslinux

Gamerz'ien
quand tu fais l'acquisition des nombres présents dans le formulaire, tu dois faire un casting => parseInt() ou parseFloat()

Sans ca JS voit les données comme une une de caractères ...
 
1er
OP
Mouflette

Mouflette

Elite
Ahava a dit:
Cette fonction évalue un argument pour déterminer s'il ne s'agit pas d'un nombre (NaN : Not a Number).

salaire[] est un tableau d'entiers (représentant des salaires), et salaire est le salaire dans le tableau à la position s


:)


merci :)
 
1er
OP
Mouflette

Mouflette

Elite
j ai denouveau un petit soucis ds le tableau final cmt puis je mettre una variable en couleur??? je n y arrive pas mon programme plante :s enfin ce n est qu un petit detail mais si qqun c est m aider ca serait chouette :)

exemple :

Code:
for (i = 0 ; i < 15 ; i = i + 1){
document.write("<td>");
document.write(nombre[i][j]);
document.write("</td>");
mettre la variable "nombre [j]" en couleur en gros si on regarde l image du 1er post ca devrait etre en vert :)
 

Ahava

Revenant
tu peux mettre un <font color=green> puis </font>, chui plus sur du format de la balise mais c'est celle là pour mettre en couleur :)


Donc si c'est juste ce que je dis, t'aura un truc du genre :


Code:
for (i = 0 ; i < 15 ; i = i + 1){
document.write("<td><font color=green>");
document.write(nombre[i][j]);
document.write("</font></td>");

pas certain mais c'est cette voie là que tu dois suivre :)
 
1er
OP
Mouflette

Mouflette

Elite
J ai deja essayé ca (et encore une fois mtn) mais ca ne fonctionne pas :) mon programme ne veut meme plus commencer :d

comme c est en javascript (tjs ds la balise script et pas body) je me dis qu'il y a p-e autre chose...meme le .fontcolor() fonctionne pas :s je ne sais plus quoi utiliser
 

Calvin80

Respect is key
Code:
for (i = 0 ; i < 15 ; i = i + 1){
document.write('<td style="background-color: green;">');
document.write(nombre[i][j]);
document.write("</td>");
si ca ne marche pas, c'est que ton erreur est comme la Vérité... elle est ailleurs.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut