Probleme structure fonction Javascript

math_lo -  
JooS Messages postés 2705 Statut Membre -
Bonjour,
Je débute en Javascript (vraiment un petit débutant :p) et je suis le cours du Site du zerO. Bref, je dois maintenant réaliser un TP ou je demande une valeur à l'utilisateur comprise entre 0 et 999 et le site doit retourner la valeur sous forme de nombre...
J'ai reussi pour les nombres de 0 à 100. il faut maintenant juste ajouter les centaine devant et je voudrai créer une fonction pour pas tout recopier à chaque fois.
avant de creer la fonction, voila mon code :

------------------
------------------
------------------

function myFunction_unite(arg) { // Fonction pour les unités
switch (arg) {
case 1:
unite = "Un";
break;
case 2:
unite = "Deux";
break;
case 3:
unite = "Trois";
break;
case 4:
unite = "Quatre";
break;
case 5:
unite = "Cinq";
break;
case 6:
unite = "Six";
break;
case 7:
unite = "Sept";
break;
case 8:
unite = "Huit";
break;
case 9:
unite = "Neuf";
break;
case 0:
unite = "Zero";
break;
}
return(unite); // Fin de la Fonction unite
}

function myFunction_onze(arg) { // Fonction pour les chiffres de 11 à 19
switch (arg) {
case 1:
unite = "Onze";
break;
case 2:
unite = "Douze";
break;
case 3:
unite = "Treize";
break;
case 4:
unite = "Quatorze";
break;
case 5:
unite = "Quinze";
break;
case 6:
unite = "Seize";
break;
case 7:
unite = "Dix-Sept";
break;
case 8:
unite = "Dix-Huit";
break;
case 9:
unite = "Dix-Neuf";
break;
}
return(unite); // Fin de cette fonction
}

function myFunction_centaine(arg) { // Fonction pour les centaine uniquement ex: 100, 200...
switch (arg) {
case 1:
unite = "Cent";
break;
case 2:
unite = "Deux-Cents";
break;
case 3:
unite = "Trois-Cents";
break;
case 4:
unite = "Quatre-Cents";
break;
case 5:
unite = "Cinq-Cents";
break;
case 6:
unite = "Six-Cents";
break;
case 7:
unite = "Sept-Cents";
break;
case 8:
unite = "Huit-Cents";
break;
case 9:
unite = "Neuf-Cents";
break;
}
return(unite); // Fin de cette fonction
}

var final, unite, number, reste_100, reste_10, lenght, dizaine, centaine, chiffre_dizaine, chiffre_unite, chiffre_centaine;

var number = parseInt(prompt("Entrez votre nombre compris entre 0 et 999"), 10);

reste_100 = number % 100;
reste_10 = number % 10;

if (number === reste_100 && number === reste_10) {

lenght = 10 - 9;

} else if (number === reste_100 && number != reste_10) {

lenght = 10 - 8;

} else {

lenght = 10 - 7;

}

alert ("Votre nombre converti en lettres donne :"); // Demande le nombre et calcul de sa longueur

if (lenght === 1) { // Si nombre compris entre 0 et 9
alert(myFunction_u(number));
}

if (lenght === 2) { // si nombre compris entre 10 et 99
dizaine = number - reste_10;
chiffre_dizaine = dizaine / 10;
chiffre_unite = number - dizaine;

switch (chiffre_dizaine) {
case 1 :
alert(myFunction_onze(chiffre_unite));
break;

case 2:

if (chiffre_unite === 0) {

alert('Vingt');

} else if (chiffre_unite === 1) {

alert("Vingt-Et-Un");

} else {

alert("Vingt-" + myFunction_unite(chiffre_unite));

}
break;

case 3:
if (chiffre_unite === 0) {

alert('Trente');

} else if (chiffre_unite === 1) {

alert("Trente-Et-Un");

} else {

alert("Trente-" + myFunction_unite(chiffre_unite));

}
break;

case 4:
if (chiffre_unite === 0) {

alert('Quarante');

} else if (chiffre_unite === 1) {

alert("Quarante-Et-Un");

} else {

alert("Quarante-" + myFunction_unite(chiffre_unite));

}
break;
case 5:
if (chiffre_unite === 0) {

alert('Cinquante');

} else if (chiffre_unite === 1) {

alert("Cinquante-Et-Un");

} else {

alert("Cinquante-" + myFunction_unite(chiffre_unite));

}
break;
case 6:
if (chiffre_unite === 0) {

alert('Soixante');

} else if (chiffre_unite === 1) {

alert("Soixante-Et-Un");

} else {

alert("Soixante-" + myFunction_unite(chiffre_unite));

}
break;
case 7:
if (chiffre_unite === 0) {

alert('Soixante-Dix');

} else if (chiffre_unite === 1) {

alert("Soixante-Et-Onze");

} else {

alert("Soixante-" + myFunction_onze(chiffre_unite));

}
break;
case 8:
if (chiffre_unite === 0) {

alert('Soixante-Dix');

} else if (chiffre_unite === 1) {

alert("Soixante-Et-Onze");

} else {

alert("Soixante-" + myFunction_onze(chiffre_unite));

}
break;
case 9:
if (chiffre_unite === 0) {

alert('Quatre-Vingts');

} else {

alert("Quatre-Vingt-" + myFunction_onze(chiffre_unite));

}
break;
}
}

if (lenght === 3) { // pour tout les nombre avec des centaines
centaine = number - (reste_100);
chiffre_centaine = centaine / 100;
dizaine = number - (reste_10 + centaine);
chiffre_dizaine = dizaine / 10;
chiffre_unite = number - (centaine + dizaine);

if (chiffre_unite === 0 || chiffre_dizaine === 0) { // juste des centaines entieres 100, 200
alert(myFunction_centaine(chiffre_centaine));
}
else if(chiffre_unite !== 0 || chiffre_dizaine === 0) {

alert(myFunction_centaine(chiffre_centaine) + myFunction_onze(chiffre_unite)); // nombre de type 202, 505, 503....

} else { // la je voudrai mettre les nombres manquants exemple 333

}

}

---------------------
---------------------
---------------------

Comment creer la fonction qui me manque?!!
merci d'avance

1 réponse

  1. JooS Messages postés 2705 Statut Membre 228
     
    Salut ...
    function int_to_string(arg) { // Fonction pour les unités 
      switch (arg) { 
        case 1: unite = "Un"; break; 
        case 2: unite = "Deux"; break; 
        case 3: unite = "Trois"; break; 
        case 4: unite = "Quatre"; break; 
        case 5: unite = "Cinq"; break; 
        case 6: unite = "Six"; break; 
        case 7: unite = "Sept"; break; 
        case 8: unite = "Huit"; break; 
        case 9: unite = "Neuf"; break; 
        case 0: unite = "Zero"; break;
        case 11: unite = "Onze"; break;
        case 12: unite = "Douze"; break;
        case 13: unite = "Treize"; break;
        case 14: unite = "Quatorze"; break;
        case 15: unite = "Quinze"; break;
        case 16: unite = "Seize"; break;
        case 17: unite = "Dix-Sept"; break;
        case 18: unite = "Dix-Huit"; break;
        case 19: unite = "Dix-Neuf"; break;
        case 20: unite = "Vingt"; break;
        case 30: unite = "Trente"; break;
        case 40: unite = "Quarente"; break;
        case 50: unite = "Cinquante"; break;
        case 60: unite = "Soixante"; break;
        case 80: unite = "Quatre-vingt"; break;
        case 100: unite = "Cent"; break;
        default: return false;
      } 
      return(unite);
    }
    
    //--------------------------------------------------------------
    function int2_to_string(col10, col1) {
      var first, second;
      if(col10 == '0') return int_to_string(parseInt(col1,10));
      else if(col10 == '7') {
        first = int_to_string(parseInt(60,10));
        second = int_to_string(parseInt(1+col1,10));
        if(col1 == '1') return first+' et '+second;
        return first+'-'+second;
      }
      else if(col10 == '9') {
        first = int_to_string(parseInt(80,10));
        second = int_to_string(parseInt(1+col1,10));
        if(col1 == '1') return first+' et '+second;
        return first+'-'+second;
      }
      else {
        first = int_to_string(parseInt(col10+0,10));
        second = int_to_string(parseInt(col1,10));
        if(col1 == '1') return first+' et '+second;
        return first+'-'+second;
      }
    }
    //--------------------------------------------------------------
    
    function convertNumber(number) {
      var col1, col10, col100;
      number = parseInt(number,10);
      //-----------------------------------------
      var word = int_to_string(number);
      if(word) return word;
      //-----------------------------------------
      
      var numberL = number+'';
      
      if(numberL.length == 2) {
        col10 = numberL[0]; // 90
        col1 = numberL[1]; // 8
        
        return int2_to_string(col10, col1);
      }
      else if(numberL.length == 3) { //986
        col100 = numberL[0]; // 900
        col10 = numberL[1]; // 80
        col1 = numberL[2]; // 6
        
        if(col100 == '1') {
          return 'Cent '+int2_to_string(col10, col1);
        }
        else {
          return int_to_string(parseInt(col100,10))+' Cents '+int2_to_string(col10, col1);
        }
      }
      else alert(numberL.length);
    }
    
    //--------------------------------------------------------------
    
    alert(convertNumber(prompt('Entrez un nombre : ')));


    A revoir ...
    0