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
|
#!/usr/bin/perl
%mot = (
'0' => ' zero',
'1' => ' et un',
'2' => ' deux',
'3' => ' trois',
'4' => ' quatre',
'5' => ' cinq',
'6' => ' six',
'7' => ' sept',
'8' => ' huit',
'9' => ' neuf',
'10' => ' dix',
'11' => ' onze',
'12' => ' douze',
'13' => ' treize',
'14' => ' quatorze',
'15' => ' quinze',
'16' => ' seize',
'17' => ' dix sept' ,
'18' => ' dix huit' ,
'19' => ' dix neuf' ,
'20' => ' vingt',
'30' => ' trente',
'40' => ' quarante',
'50' => ' cinquante',
'70' => ' soixante dix',
'71' => ' soixante et onze',
'60' => ' soixante',
'80' => ' quatre-vingt',
'81' => ' quatre-vingt un',
'90' => ' quatre vingt-dix',
'cent' => ' cent',
'100' => ' cents',
'1000' => ' mille',
'1000a' => ' milles',
'1000000' => ' million',
'1000000a' => ' millions',
'1000000000' => ' milliard',
'1000000000a' => ' milliards',
);
$cpt = 0 ;
do
{
print "Saisir un nombre\n:>" ;
chomp ( $g = <STDIN> ) ;
$greg = &convertir_chiffre ($g) ;
print "$greg \n" ;
}
until ( $cpt == 1 ) ;
#################################
sub convertir_chiffre
{
my ($convertir_nombre ) = @_ ;
$longueur_nombre = length $convertir_nombre ;
my $nombre_final ;
my $chiffre1 = substr ( $convertir_nombre ,0,1) ;
my $chiffre2 = substr ( $convertir_nombre ,1,1) ;
my $chiffre3 = substr ( $convertir_nombre ,2,1) ;
my $chiffre4 = substr ( $convertir_nombre ,3,1) ;
my $chiffre5 = substr ( $convertir_nombre ,4,1) ;
if ( $convertir_nombre < 100 ) {$nombre_final = &inferieur_100 ( $convertir_nombre ) ;}
elsif ( $convertir_nombre == 100 ) { $nombre_final = " cent";}
elsif ( $convertir_nombre == 101 ) { $nombre_final = " cent un";}
elsif ( $longueur_nombre < 4 && $chiffre2 == 0 && $chiffre3 ==0 ) { $nombre_final = $mot{$chiffre1} .$mot{100} ; }
elsif ( $longueur_nombre < 4 && $chiffre2 == 0 && $chiffre3 ==1 ) { $nombre_final = $mot{$chiffre1} . $mot{100} . " et un"; }
elsif ( $longueur_nombre < 4 && $chiffre1 == 1 ) {$number = $chiffre2.$chiffre3 ;$nombre_final = $mot{cent}. &inferieur_100 ( $number ) ; }
elsif ( $longueur_nombre < 4 ) {$number = $chiffre2.$chiffre3 ;$nombre_final = $mot{$chiffre1} .$mot{100}. &inferieur_100 ( $number ) ; }
$nombre_lettre_netoyer = &netoyer_espace ($nombre_final) ;
return $nombre_lettre_netoyer
}
#####traite les chiffres inferieure a 100
sub inferieur_100
{
my ( $nombre_inferieur_100 ) = @_ ;
my $chiffre_1 = substr ( $nombre_inferieur_100 ,0,1) ;
my $chiffre_2 = substr ( $nombre_inferieur_100 ,1,1) ;
$longueurnombre = length $nombre_inferieur_100 ;
if ( $nombre_inferieur_100 == 1 ) { $nombrefinal = " un" ; }
elsif ($nombre_inferieur_100 < 21 || $nombre_inferieur_100 == 71 ) { $nombrefinal = $mot{$nombre_inferieur_100}}
elsif ( $chiffre_2 == 0 && $longueurnombre == 2 ) { $nombrefinal = $mot{$chiffre_1 * 10} ;}
else
{
if ( $chiffre_1 == 2 || $chiffre_1 == 3 || $chiffre_1 == 4 || $chiffre_1 == 5 || $chiffre_1 == 6 || $chiffre_1 == 8)
{
$nombrefinal = $mot{$chiffre_1 * 10} . $mot{$chiffre_2}
}
elsif ( $chiffre_1 == 7 || $chiffre_1 == 9 )
{
$num = $chiffre_1 -1 ;
$nombrefinal = $mot{$num * 10} . $mot{$chiffre_2+10} ;
}
}
return $nombrefinal
}
################################
sub netoyer_espace
{
my ( $nombre_f ) = @_ ;
my $longueur_n = length $nombre_f ;
$espace = substr ( $nombre_f , 0 , 1 ) ;
if ( $espace eq " " ) {$nombre_f=substr ( $nombre_f , 1 , $longueur_n ) ;}
} |
Partager