Actions

Cours

Cours:Technologies avancées du eLearning 2/exercices/Saisie de nombres

De GBLL, TAL, ALAO, etc.

Énoncés dans le support de cours (diapos 15 et 17). https://codepen.io/lzbk/pen/PxdwrW

Fonction estChiffre

Nous avons vu plusieurs solutions possibles :

//En utilisant un switch/case
function estChiffre1(car){
   var resultat=false;
   switch(car){
      case "0":
      case "1":
      case "2":
      case "3":
      case "4":
      case "5":
      case "6":
      case "7":
      case "8":
      case "9":
         resultat = true;
   }
   return resultat;
}

function estChiffre2(car){
//en utilisant l'ordre alphabétique (attention ça ne marche pas avec car<"10")
   return (car>="0" && car<="9");
}

function estChiffre3(car){
//en utilisant un tableau des caractères autorisés
   var resultat = false ;
   var tabChiffres = ["0","1","2","3","4","5","6","7","8","9"];
   for(let i=0;i<tabChiffres.length;i++){
      if(tabChiffres[i] == car){
         resultat = true;
      }
   }
   return resultat;
}

function estChiffre4(car){
//avec un if
   var resultat = false;
   if (   car=="0"
       || car=="1"
       || car=="2"
       || car=="3"
       || car=="4"
       || car=="5"
       || car=="6"
       || car=="7"
       || car=="8"
       || car=="9"
    ){
      resultat = true;
   }
   return resultat;
}

Fonction estNombre

Pour la semaine prochaine, votre fonction est nombre doit passer le test suivant :

console.log("Chaine vide : " + estNombre("") + " → false\n",
            "romains : " +estNombre("XIV")+ " → false\n",
            "1 : " +  estNombre("1") + " → true\n",
            "123546590143 : " +  estNombre("123546590143") + " → true\n",
            "1.62345 : " + estNombre("1.62345") + " → true\n",
            "-1 : " + estNombre("-1") + " → true\n",
            "-13240,2303458 : " + estNombre("-13240,2303458") + " → true\n",
            "12345a12235 : " + estNombre("12345a12235") + " → false\n",
            "12345-12235 : " + estNombre("12345-12235") + " → false\n",
            "23.34562.234 : " + estNombre("23.34562.234") + " → false\n");

Correction

function estNombre(mot){
   var resultat = true,
       aVirgule = false;
   if(estChiffre1(mot.charAt(0))||mot.charAt(0)=="-"){
      for(let i=1;resultat && i<mot.length;i++){
         if(mot.charAt(i)==","
           || mot.charAt(i)=="."){
             if(aVirgule){
                resultat = false;
             }
             else{
                aVirgule = true;
             }
         }
         else if(!estChiffre1(mot.charAt(i))){
            resultat = false;
         }
      }
   }
   else{
      resultat = false;
   }
   return resultat;
}