Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme TP Convertir un nombre "undefined"

    19 février 2017 à 16:53:17

    Bonjour,

    j'avance petit a petit et je pense a la fin optimiser mon code, apres avoir bien compris le TP j'ai un petit soucis incomprehensible qui me donne un undefined pour convertir un nombre de 3 chiffres alors que pour convertir un nombre de 2 chiffre ma condition marche tres bien et entre les deux condition c'est exactement la meme chose, je n'arrive pas du tout a comprendre... pouvez meclairer sil vous plait je vous met mon code...

    Merci beaucoup pour vos reponse!

    var unite = ['zero', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit','neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize'];
    var dizaine = ['','dix', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante-dix', 'quatre-vingts', 'quatre-vingts-dix'];
    var nombre, cent, diz, unit;
    
    function separate() {
      unit = nombre % 10;
      unit = parseInt(unit, 10);
      diz = nombre / 10;
      diz = parseInt(diz, 10);
      cent = nombre % 1000;
      cent = parseInt(cent, 10);
    }
    
    while (nombre = prompt("entrez un nombre")) {
    
      if (isNaN(nombre))
        alert("Vous n'avez pas entrez de nombre, veuillez recommencer")
    
      //si le nombre est de 100 a 999 alors il convertis et il affiche les tableau suivants les nombres
      else if (100 <= nombre && nombre <= 999) {
    //probleme ici !!!!!!!!!!!!!!!!!!
        separate();
          alert(unite[cent] + "-" + dizaine[diz] + "-" + unite[unit]);
    //!!!!!!!!!!!!!!!
    
    
          //si le nombre est de 10 a 99 alors il convertis et il affiche les tableau suivants les nombres
      }else if (17 <= nombre && nombre <= 99) {
    
        separate();
          alert(dizaine[diz] + "-" + unite[unit]);
    
          //si le nombre est de 0 a 9 alors il convertis et il affiche les tableau suivants les nombres
      }else if (0 <= nombre && nombre <= 16) {
    
          alert(unite[nombre]);
    
      }else if (nombre.length > 3) {
        alert('Votre nombre est inferieur a 999');
        alert('Veuillez recommencer');
      }
    
      }
    



    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2017 à 17:20:45

      Salut

      c'est ta fonction separate() qui est mauvaise

      function separate() {
        unit = nombre % 10;
        unit = parseInt(unit, 10);
        diz = nombre / 10 % 10;
        diz = parseInt(diz, 10);
        cent = nombre / 100;
        cent = parseInt(cent, 10);
      }

      ca c'est mieux

      -
      Edité par 3issam 19 février 2017 à 17:21:29

      • Partager sur Facebook
      • Partager sur Twitter
        19 février 2017 à 17:49:37

        ca ne change rien au resultat, ce qui est bizar c'est que ca me fait undefined (pour la centaine), undefined (pour la dizaine) et me donne le chiffre l'unité,ca me fait sur un nombre de 3 chiffre alors que sur un nombre de 2 chiffre ca marche impeccable...
        • Partager sur Facebook
        • Partager sur Twitter
          19 février 2017 à 18:05:06

          je l'ai testé sur mon navigateur, et ça fonctionne

          fait des alert dans la fonction et vérifie le contenu des variables

          • Partager sur Facebook
          • Partager sur Twitter
            19 février 2017 à 19:29:28

            top je l'ai refait ca marche bien, merci beaucoup!
            • Partager sur Facebook
            • Partager sur Twitter

            Probleme TP Convertir un nombre "undefined"

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown