1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Edit1->Text != "")
{
AnsiString val = "";
int Chiffre = StrToInt(Edit1->Text);
//pour les miliers
if(Chiffre > 100)
{
val += Conversion(Chiffre/1000,false,true) + " mille ";
Chiffre = Chiffre%1000;
}
//pour les centaines
if(Chiffre > 100)
{
val += Conversion(Chiffre/100,false,true) + " cent ";
Chiffre = Chiffre%100;
}
//pour les dizaines et unitées
if(Chiffre <17)
{
val += Conversion(Chiffre,false,false);
}
else
{
switch((Chiffre/10))
{
//chiffre entre 18 et 19
case 1: val += Conversion((Chiffre/10)*10,false,false) + " " + Conversion(Chiffre%10,false,false);
break;
//chiffre entre 20 et 29
case 2: val += "vinght" + Conversion(Chiffre%20,true,false);
break;
//chiffre entre 30 et 39
case 3: val += "trente" + Conversion(Chiffre%30,true,false);
break;
//chiffre entre 40 et 49
case 4: val += "quarante" + Conversion(Chiffre%40,true,false);
break;
//chiffre entre 50 et 59
case 5: val += "cinquante" + Conversion(Chiffre%50,true,false);
break;
//chiffre entre 60 et 69
case 6: val += "soixante" + Conversion(Chiffre%60,true,false);
break;
//chiffre entre 70 et 79
case 7: val += "soixante " + Conversion(Chiffre-60,false,false);
break;
//chiffre entre 80 et 89
case 8: val += "quatre-vinght " + Conversion(Chiffre%80,false,false);
break;
//chiffre entre 90 et 99
case 9: val += "quatre-vinght " + Conversion(Chiffre-80,true,false);
break;
}
}
Label1->Caption = val;
}
}
AnsiString Conversion(int nombre,bool dix,bool cent)
{
switch(nombre)
{
case 0: if(!dix)return "zéro" ;
else return "" ; //pour 20,30,40 ... évite vinght zéro
case 1: if(dix)return "et un" ; //pour 21,31,41 ... évite vinght un
else if(cent)return "" ; //pour 100,200 ... évite un cent
else return "un" ; //pour 101,201 ... évite cent et un
case 2: if(!dix)return "deux" ;
else return "-deux" ; //pour les liaison
case 3: if(!dix)return "trois" ;
else return "-trois" ;
case 4: if(!dix)return "quatre" ;
else return "-quatre" ;
case 5: if(!dix)return "cinq" ;
else return "-cinq" ;
case 6: if(!dix)return "six" ;
else return "-six" ;
case 7: if(!dix)return "sept" ;
else return "-sept" ;
case 8: if(!dix)return "huit" ;
else return "-huit" ;
case 9: if(!dix)return "neuf" ;
else return "-neuf" ;
case 10:return "dix" ;
case 11:if(!dix)return "et onze" ; // pour 71 évite soixante onze
else return "onze" ;
case 12:return "douze" ;
case 13:return "treize" ;
case 14:return "quatorze" ;
case 15:return "quinze" ;
case 16:return "seize" ;
case 17:return "dix-sept" ;
case 18:return "dix-huit" ;
case 19:return "dix-neuf" ;
default:return "" ;
}
} |
Partager