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 :

Calcul d'IMC


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de labarre2002
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 230
    Points : 134
    Points
    134
    Par défaut Calcul d'IMC
    Bonjour

    Je débute sur javascript et je réalise une page qui calcule l indice de masse corporel


    mon code html:

    Code html : 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
    25
    <body>
     
     <div class="content">
        <div>
            <label for="taille">Votre Taille:</label>
            <input type="number" name="taille" id="taille" />
        </div>
     
    <div>
        <label for="poids">Votre Poids:</label>
        <input type="number" name="poids" id="poids"/>
    </div>
     
     
     
        <button type="submit" class="envoi">Calculer mon IMC</button>
     
     
     </div>
     
     
        <script src="./index.js">
     
        </script>
    </body>


    mon code JS:

    Code javascript : 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
    25
    26
    27
    28
    29
    30
    const maTaille=document.querySelector('#taille');
    console.log(maTaille);
     
     
    const monPoids=document.querySelector('#poids');
    console.log(monPoids);
     
     
     
    const result=document.querySelector('.envoi');
    console.log(result);
    result=document.querySelector('.envoi');
     
     
    let taille=0;
    let poids=0;
    let answer=0;
    maTaille=parseInt(taille);
    monPoids=parseInt(poids);
     
     
    function calcul(a,b){
        return a /( b * b );
    }
     
    result.addEventListener("click",()=>{
       calcul(monPoids,maTaille);
    alert('Votre IMC est:'+ result);
    console.log('Votre IMC est:'+ result);
    });


    Nom : 11.jpg
Affichages : 430
Taille : 29,1 Ko

    Rien ne se passe .Pourrais-je avoir des explications ?
    « Je ne perds jamais, soit je gagne, soit j'apprends. »
    Nelson Mandela

  2. #2
    Membre averti Avatar de ASCIIDEFOND
    Homme Profil pro
    Autodidacte passionné
    Inscrit en
    Novembre 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Autodidacte passionné

    Informations forums :
    Inscription : Novembre 2002
    Messages : 220
    Points : 413
    Points
    413
    Par défaut
    Salut labarre2002,

    Pour simplifié:

    Code HTML : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE html>
    <html>
     
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
     
        <style>
            .content {
                position: relative;
                width: max-content;
                margin: 20px auto;
            }
     
            .content div:nth-child(1) {
                margin-top: 10px;
            }
     
            .content div:nth-child(2) {
                margin-top: 10px;
                margin-bottom: 10px;
            }
        </style>
    </head>
     
    <body>
        <div class="content">
            <div>
                <label for="taille">Votre Taille: </label>
                <input type="text" name="taille" id="taille" placeholder="En cm" />
            </div>
     
            <div>
                <label for="poids">Votre Poids: </label>
                <input type="text" name="poids" id="poids" placeholder="En Kg" />
            </div>
     
            <button type="button" class="envoi">Calculer mon IMC</button>
     
        </div>
     
        <script>
            const maTaille = document.getElementById('taille');
            const monPoids = document.getElementById('poids');
            const envoi = document.querySelector('.envoi');
     
            envoi.addEventListener("click", () => {
                let taille = (maTaille.value) / 100,
                poids = (monPoids.value),
                result = poids / (taille * taille)
     
                alert(`Votre IMC est de: ${result.toFixed(3)}`)
            })
     
        </script>
    </body>
     
    </html>

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Et j'aurais même éliminé les variables intermédiaires pour simplifier l'idée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.querySelector('.envoi').addEventListener("click", () => 
    	alert(`Votre IMC est de: ${(document.getElementById('poids').value /(document.getElementById('taille').value/100)**2).toFixed(3)}`)
    )

  4. #4
    Membre habitué Avatar de labarre2002
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 230
    Points : 134
    Points
    134
    Par défaut
    Merci pour vos messages le but en postant c 'était des explications
    plutot que du code que je peine a comprendre.
    « Je ne perds jamais, soit je gagne, soit j'apprends. »
    Nelson Mandela

  5. #5
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Le problème est que tu confonds les input type number avec la valeur qu'ils renvoient.
    quand tu mets monPoids=parseInt(poids), tu sembles vouloir affecter un entier à un élément du DOM...Donc forcément, ça ne peut pas marcher !
    donc déjà, tu définis un min, un max, une valeur par défaut et un step (en décimal (par défaut c'est un) pour l'incrément) à tes input number.
    exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="number" name="taille" id="taille" min="1"  max="2" value="1.70" step="0.1"/>
       <input type="number" name="poids" id="poids" min="30" max="100" value="70"/>

    Après dans le callback du click, tu commences par définir tes variables pour ton calcul...
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ,()=>{
        let taille=maTaille.value;  // taille va prendre la valeur sélectionnée dans le input number: maTaille
        let poids=monPoids.value;// idem pour poids - et attention, c'est réactualisé à chaque click donc à mettre dans la fonction associée au click et pas en dehors comme tu le fais.
        alert('Votre IMC est:  '+calcul(poids,taille) );  // ici le calcul brut de l'IMC à formater pour l'affichage...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Delphi, calcul de l'IMC.
    Par benbenbeeen dans le forum Débuter
    Réponses: 2
    Dernier message: 23/05/2016, 13h13
  2. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09
  3. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29
  4. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  5. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 17h45

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