IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

petit scripte a faire pour un l'ecole


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut petit scripte a faire pour un l'ecole
    salut tout le monde.

    je vais vous exposer mon probleme, je dois creer un script pour l'ecole,j'en ai fais un mais bon il ne tourne pas bien vous pourriez m'aider a le corriger ou a la limite m'en faire un autre si sa ne vous derange pas. je vous donne tous les detail.

    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
    et voila le programme

    <html>
    <head>
    <title>Salaire</title>

    <script language="javascript">
    var resultat = new Array(new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array());
    //variable contenant la valeur des billets
    var billet = new Array(500,200,100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01);
    //variable pour de test, elle ne sert normalement plus à rien à la phase final mais est laissé au cas où que j'aurais oublié de modifié de nom la variable définitive
    var test="";

    //variable qui servira de limitation de boucle en fonction du nombre de valeur encodée
    var employeNbr=10;

    //fonction qui supprime les cases vides...Enfin, pas très au point...
    function Nettoyage()
    {
    for(o=9;o>-1;o--)
    {
    if (document.paie.salaire[o].value == "")
    {
    employeNbr = o;
    }
    }
    }


    //fonction qui vérifira les données encodées par l'utilisateur
    function Vérification(compt)
    {
    //variable qui indiquera la ligne du formulaire où peut se trouve l'erreur
    var precision = compt+1;

    //on récupére chaques valeurs du formulaire
    //une fois en numérique
    var salaireTemp = parseFloat(document.paie.salaire[compt].value);
    //une fois en chaîne de caractère
    var salaireTempTexte = document.paie.salaire[compt].value;

    //condition de chaîne numérique uniquement (cf plus bas)
    var salaireTempChiffre = salaireTemp*0;

    //condition du nombre de décimal (cf plus bas)
    //on récupère la longueur de la chaîne
    var salaireTempLongueur = salaireTempTexte.length;
    //on récupère la position de la "virgule"
    var salaireTempVirguleTemp = salaireTempTexte.indexOf(".");
    //on fait la soustraction des deux pour connaître la position par rapport au bout de chaîne
    var salaireTempVirgule = salaireTempLongueur - salaireTempVirguleTemp;

    if(document.paie.employe[compt].value == "")
    {
    alert("Veuillez préciser à qui sera attribué le salaire de la ligne:"+precision);
    exit;
    }
    else if(salaireTempChiffre != 0)
    //On multiplie le nombre par 0, et on vérifie si ca fait bien 0
    //Si ce n'est pas le cas, ce n'est pas un nombre
    {
    alert("Veuillez mettre vous salaire en décimal à la ligne:"+precision);
    exit;
    }
    else if(salaireTempVirgule > 3 && salaireTempVirguleTemp != -1)
    //Si il y a une virgule, la position de la virgule est différente de -1.
    //ET
    //Si la postion de la virgule est supérieur à trois => plus de deux chiffres derrière la virgule
    {
    alert("Veuillez encoder un salaire payable (chiffre au centième!) à la ligne:"+precision);
    exit;
    }
    else if(salaireTemp < 500)
    {
    alert("N'exploitez pas vos employés: 500€ minimum!");
    exit;
    }
    else if(salaireTemp > 5000)
    {
    alert("Vous êtez trop généreux: 5000€ maximum!");
    exit;
    }
    else
    {
    //Si tout va bien, le salaire, placé dans la deuxième colonne
    resultat[1][compt] = salaireTemp;
    }
    }

    //la fonction qui calculera le nombre de billet en fonction du salaire
    function BilletCalcul(compt)
    {
    //création d'une variable qui contiendra le reste de chaque division
    var temp = resultat[1][compt];
    var z;
    for(z=0;z<billet.length;z++)
    {
    //calcul du nombre de billet
    resultat[z+2][compt] = Math.floor(temp/billet[z]);
    //récupération du reste de la divisition
    temp = (temp-resultat[z+2][compt]*billet[z]);
    }
    }

    //fonction qui calculera le nombre de billet au total
    function Totaux()
    {
    var temp = 0;
    //on fait le tour colonne par colonne
    for(c=0;c<billet.length+1;c++)
    {
    for(l=0;l<employeNbr;l++)
    {
    //on addition chaque ligne d'une colonne
    temp = resultat[c+1][l]+temp;
    }
    //on place la somme dans en bas de la colonne
    resultat[c+1][employeNbr] = temp;
    //on n'oublie surtout pas de remettre la varialbe temporaire à 0 pour la prochaine colonne
    temp = 0;
    }
    //Tant qu'on y est, autant remplir toute la dernière ligne
    resultat[0][employeNbr] = "Totaux";
    }

    //fonction qui affiche le tableau resultat
    function Affiche()
    {
    var tableau = "";
    var ligne = new Array("","","","","","","","","","");
    for(l=0;l<employeNbr+1;l++)
    {
    for(c=0;c<billet.length+2;c++)
    {
    //on génère chaque colonne pour une ligne: employé, nombre de billet
    ligne[l] += "<td width=\"30px\">"+resultat[c][l]+"</td>";
    }
    //on rassemble les lignes générés
    tableau += "<tr align=\"center\">"+ligne[l] + "</tr>";
    }
    //on génére l'entête du tableau
    var entete = "<td><strong>Employé</strong></td><td><strong>Salaire</strong></td>";
    for(z=0;z<billet.length;z++)
    {
    entete += "<td><font color=\"#FF0000\">"+billet[z]+"</font></td>";
    }
    document.write("<table border=\"1px\" bordercolor=\"#333333\" cellpadding=\"3px\" cellspacing=\"0\"><tr align=\"center\">"+entete+"</tr>"+tableau+"</table>");
    }

    function Main()
    {
    Nettoyage();
    var i;
    for(i=0;i<employeNbr;i++)
    {
    Vérification(i);
    //ici, le nom des employés qui va être placé dans la première colonne
    resultat[0][i] = document.paie.employe[i].value;
    //Calcul du nombres de billets
    BilletCalcul(i);
    }
    Totaux();
    Affiche();
    }
    </script>
    </head>

    <body>
    Attention, veuillez remplir le formulaire ligne par ligne sans en sauter!<br>
    Si il y a une ligne de vide, toutes les valeurs qui suivent ne seront pas prises en compte!<br>&nbsp;<br>
    <!-- il est possible de faire une boule mais le copier coller reste plus simple -->
    <form name="paie">

    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>

    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>
    nom:<input name="employe" type="text">salaire:<input name="salaire" type="text"><br>

    <input type="button" onClick="Main();" value="Calculer">
    </form>
    </body>
    </html>

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 93
    Points : 114
    Points
    114
    Par défaut
    Tant qu'à y être, envoies le thème de ta compo de français qu'on la fasse pour toi, elle aussi !

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    j'aurais le droit d'être mentionné sur ton diplome ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    lis la FAQ et eventuellement les tutoriaux qui sont sur Developpez, ça ira mieux après....

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var resultat = new Array(new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array());
    simple curiosité : quelle est la dimension de ce tableau ?

    ------------
    Conseil : travailler en centimes d’euro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var billet = new Array(500,200,100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01);
    ->tu ne travailles pas en centimes...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 93
    Points : 114
    Points
    114
    Par défaut
    En copiant/collant le code et en affichant avec un alert la propriété length de resultat, tu devrais avoir la longueur du tableau...

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Citation Envoyé par Claude Pelletier
    En copiant/collant le code et en affichant avec un alert la propriété length de resultat, tu devrais avoir la longueur du tableau...
    je prends conscience de l'absurdité de ma remarque. En regardant tous ces array, je m'étais dit que c'était un tableau de dimension 17^17 !! Et nom un tableau 2D, avec au moins 17 éléments.

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    si tu fais pas tes devoirs t'auras pas de cadeaux a nowel
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/02/2008, 14h31
  2. comment faire pour tourner un script sur un serveur et lequel?
    Par patchiko dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 20/07/2007, 16h00
  3. [C] Aide petit script c pour linux
    Par Jopzeut dans le forum Linux
    Réponses: 3
    Dernier message: 04/03/2007, 11h42
  4. Réponses: 1
    Dernier message: 13/05/2006, 10h24
  5. Aide pour un petit script
    Par perldebutant dans le forum Langage
    Réponses: 4
    Dernier message: 28/03/2006, 21h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo