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 :

function javascript calcul


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    17
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Par d�faut function javascript calcul
    Bonjour,
    De l aide tout le monde.
    Je veux faire une fction qui fonctionne comme suit , elle a pour but de determiner combien de billets de 100 , de 50, de 20, de 10, de 5, de 2 de 1, de 0,25, de 0,1 de 0,5 et enfin de 0,01 y a t il dans un montant x donn�.
    CEtte fction doit agir comme suit exemple si x = 60, elle doit dire il y a 1 billet de 50 et 1 billet de 10, mais il doit pas dire il y a 6 billets de 10 ou 3 billets de 20.
    Un autre exemple si x = 15,18 , elle doit dire il y a 1 billet de 10, 1 billet de 5 , 1 billet de 0,1, ; 1 billet de 0,5 et 3 billets de 0,01.
    J y reflechit depuis 2 jours et j arrive pas a trouver la bonne facon
    merci

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par d�faut
    fais une recherche sur
    *100
    for
    div
    mod

  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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    il te faut un array avec tes "billets" en commen�ant par le plus grand


    var Billets = new Array(100,50,20,10,5,0.5,0.25,0.1,0.01)

    ensuite il faut prendre ton montant Global et le diviser par le primier Billet, prendre la partie enti�re et la stocker dans un Array NbreBillets

    il suffit de recup�rer le modulo de cette division de le multiplier par la valeur du Billet pour avoir le reste.
    Puis tu recommence l'op�ration avec le Billets suivant...
    tu r�cup�res ainsi un l'Array du nombre de billets ...
    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
    R�dacteur
    Avatar de marcha
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2003
    Messages
    1 571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 571
    Par d�faut
    Voici un exemple,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <script type="text/javascript">
    var Billets = new Array(100,50,20,10,5,0.5,0.25,0.1,0.01)
    var v = 150.35;
    var n = new Array();
     
    for(var i=0;i<Billets.length;i++) {
    	var d = Billets[i];
    	n[i] = Math.floor(v / d);
    	v %= d; // garde le reste
    	document.write(n[i] + " billets de " + d + "<br />");
    }
     
    </script>
     
    1 billets de 100
    1 billets de 50
    0 billets de 20
    0 billets de 10
    0 billets de 5
    0 billets de 0.5
    1 billets de 0.25
    0 billets de 0.1
    9 billets de 0.01
    On notera un petit probl�me d'arrondi de javascript, qui a une bonne
    id�e pour corriger ?

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    43
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 43
    Par d�faut
    Si ta fonction doit minimiser le nombre de billets utilis�s, tu es sur le c�l�bre probl�me math�matiques du "Sac � dos".

    Imaginons que la somme � trouver soit 82, avec des billets de 50, 41, 10, et 1.
    Avec la m�thode d�crite plus bas, tu obtiens un billet de 50, 3 de 10, et 2 de 1, soit 6 billets au total, alors que l'optimum est 2 billets de 41.

    L'ennui, c'est que c'est un probl�me "Non polynomiale". En clair, si tu veux vraiment l'optimum, il faut "quasiment" scanner toutes les solutions. Sinon, tu te contentes d'une m�thode qui "marche", comme celle d�crite ci-dessous.

    Pour plus d'info, je te laisse regarder sur internet, c'est un probl�me plut�t amusant ... quand on a du temps.

  6. #6
    Membre exp�riment� Avatar de marts
    Inscrit en
    F�vrier 2008
    Messages
    233
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2008
    Messages : 233
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function calc(somme)
    	{
    		var billets=[100,50,20,10,5,0.5,0.25,0.1,0.01];
    		var res=[0,0,0,0,0,0,0,0,0];
    		(function()
    		{
    			var n=0;
    			while (somme<billets[n]) n++;
    			res[n]++;
    			somme-=billets[n];
    			if (somme>0) arguments.callee();
    		})();
    		return res;
    	}
    (j'aime bien la r�cursivit�).

  7. #7
    R�dacteur
    Avatar de marcha
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2003
    Messages
    1 571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 571
    Par d�faut
    Bonjour,

    R�cursivit� ou pas, l'algo est toujours faux (tout comme le mien
    post� initialement)

    calc(150.35)

    r�sultat: [1, 1, 0, 0, 0, 0, 1, 0, 9, NaN]
    au lieu de [1, 1, 0, 0, 0, 0, 1, 1, 0]

Discussions similaires

  1. function javascript qui ne fonctionne pas dans la balise <body>
    Par typikal dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 01/04/2008, 16h45
  2. Appeller une function javascript de la page m�re
    Par Anubis dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 31/07/2007, 15h22
  3. bean:define pour passage variable dans function javascript
    Par fbuchwalder dans le forum Struts 1
    R�ponses: 2
    Dernier message: 06/11/2006, 18h36
  4. onclick+ function javascript=probleme
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 2
    Dernier message: 20/10/2006, 12h54
  5. [AJAX] R�ponse XML - Functions Javascript
    Par ..:: Atchoum ::.. dans le forum G�n�ral JavaScript
    R�ponses: 24
    Dernier message: 24/01/2006, 03h02

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