Probleme structure fonction Javascript

Fermé
math_lo - 10 nov. 2011 à 11:32
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 10 nov. 2011 à 15:10
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

A voir également:

1 réponse

JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
10 nov. 2011 à 15:10
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