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 = estChiffre1(mot.charAt(0))
|| (mot.charAt(0)=="-" && mot.length > 1),
aVirgule = false;
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;
}
}
return resultat;
}