Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class TP1VEtudN00 {
- static string ConvertirUnités(int entierDe0A9) {
- //VOUS DEVEZ CODER CETTE MÉTHODE!!!
- //retourne la chaîne française pour un chiffre allant de 0 à 9, MAIS la chaîne associée à 0 sera vide, et non "zéro"
- switch (entierDe0A9)
- {
- case 1:
- return "un";
- case 2:
- return "deux";
- case 3:
- return "trois";
- case 4:
- return "quatre";
- case 5:
- return "cinq";
- case 6:
- return "six";
- case 7:
- return "sept";
- case 8:
- return "huit";
- case 9:
- return "neuf";
- default:
- return "";
- }
- }
- static string ConvertirDizaines(int entierDe1A9) {
- //VOUS DEVEZ CODER CETTE MÉTHODE!!!
- /*retourne la chaîne française pour la DIZAINE associée à un chiffre de 1 à 9, donc dix, vingt, trente...
- jusqu'à quatre-vingt-dix. NOTE: on considère que pour 8, on retournera "quatre-vingt", et non "quatre-vingts",
- puisqu'il est plus fréquent que le 's' soit absent*/
- switch (entierDe1A9)
- {
- case 1:
- return "dix";
- case 2:
- return "vingt";
- case 3:
- return "trente";
- case 4:
- return "quarante";
- case 5:
- return "cinquante";
- case 6:
- return "soixante";
- case 7:
- return "soixante-dix";
- case 8:
- return "quatre-vingt";
- case 9:
- return "quatre-vingt-dix";
- default:
- return "";
- }
- }
- static string ConvertirDizainesSpéciales(int entierDe1A6) {
- //VOUS DEVEZ CODER CETTE MÉTHODE!!!
- /*Retourne les six chaînes "spéciales" associées à certaines dizaines, utilisées dans certains cas précis:
- 1 ==> onze
- 2 ==> douze
- 3 ==> treize
- 4 ==> quatorze
- 5 ==> quinze
- 6 ==> seize*/
- switch (entierDe1A6)
- {
- case 1:
- return "onze";
- case 2:
- return "douze";
- case 3:
- return "treize";
- case 4:
- return "quatorze";
- case 5:
- return "quinze";
- case 6:
- return "seize";
- default:
- return "";
- }
- }
- static string ConvertirEntierSousCent(int entierDe1A99, bool contexteInfA1000) {
- /*Prend en paramètre un entier de 1 à 99 et retourne la chaîne appropriée. Ce paramètre de "contexteInfA1000" (à savoir:
- si le premier paramètre est 22, est-ce 22 ou 22 000?) est pertinent pour la présence d'un 's'.
- En effet, 380 380 ==> trois cent quatre-vingT mille trois cent quatre-vingtS.*/
- int entierUnités = entierDe1A99 % 10;
- int entierDizaines = entierDe1A99 / 10;
- string strUnités = ConvertirUnités(entierUnités);
- string strDizaines = ConvertirDizaines(entierDizaines);
- string réponse = ""; //Initialisation par défaut
- if (entierDizaines == 0)
- //Alors l'entier est inférieur à 10
- réponse = strUnités;
- else {
- if (entierDe1A99 >= 11 && entierDe1A99 <= 16)
- réponse = ConvertirDizainesSpéciales(entierUnités);
- else if (entierDe1A99 == 80)
- réponse = contexteInfA1000 ? "quatre-vingt" : "quatre-vingts";
- else if (entierUnités >= 1 && entierUnités <= 6 && (entierDizaines == 7 || entierDizaines == 9))
- {
- entierDizaines = entierDizaines - 1;
- strUnités = ConvertirDizainesSpéciales(entierUnités);
- strDizaines = ConvertirDizaines(entierDizaines);
- if (entierDe1A99 == 71)
- réponse = "soixante-et-onze";
- else
- réponse = strDizaines + "-" + strUnités;
- }
- else if (entierUnités == 1 && entierDizaines < 8)
- réponse = strDizaines + "-et-" + strUnités;
- else
- réponse = (entierUnités == 0 ? strDizaines : strDizaines + " " + strUnités);
- }
- return réponse;
- }
- static string ConvertirEntierSousMille(int entierDe1A999, bool contexteInférieurAMille) {
- //Prend en paramètre un entier de 1 à 999 et retourne la chaîne appropriée.
- int entierSous100 = entierDe1A999 % 100;
- int entierCentaines = entierDe1A999 / 100;
- string portionCent_s;
- bool entierSous100Nul = entierSous100 == 0;
- bool entierCentaines0 = entierCentaines == 0;
- if (entierCentaines0)
- portionCent_s = "";
- else {
- bool entierCentaines1 = entierCentaines == 1;
- portionCent_s = (entierCentaines1 ? "" : (ConvertirUnités(entierCentaines) + " ")) + "cent" + (contexteInférieurAMille && !entierCentaines1 && entierSous100Nul ? "s" : "");
- }
- string portionSousCent = entierSous100Nul ? "" : ((entierCentaines0 ? "" : " ") + ConvertirEntierSousCent(entierSous100, contexteInférieurAMille));
- return portionCent_s + portionSousCent;
- }
- static string ConvertirEntierSousUnMillion(int entierDe1A1000000) {
- //Méthode qui prend un entier de 1 à 1 000 000 et retourne la chaîne appropriée.
- int Mille = entierDe1A1000000 / 1000;
- int EnDessousDeMille = entierDe1A1000000 % 1000;
- string MilleBro = ConvertirEntierSousMille(Mille,true);
- string SousMilleBro = ConvertirEntierSousMille(EnDessousDeMille,false);
- string réponse;
- if (entierDe1A1000000 == 1000000)
- réponse = "un million";
- else if (entierDe1A1000000 >= 1000 && entierDe1A1000000 <= 1999)
- réponse = "mille " + SousMilleBro;
- else
- réponse = (entierDe1A1000000 < 1000 ? SousMilleBro : MilleBro + " mille " + SousMilleBro);
- return réponse;
- }
- static void Main() {
- Console.WriteLine("Bienvenue au convertisseur nombre-lettres!");
- int nombre=SaisiesConsoleValides.saisirEntierConsoleDeA(1, 1000000);
- Console.WriteLine(ConvertirEntierSousUnMillion(nombre));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement