Ecrire en lettre un nombre donné en chiffre!

Fermé
maxwell1093 Messages postés 40 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 10 août 2014 - 2 mars 2013 à 13:06
maxwell1093 Messages postés 40 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 10 août 2014 - 3 mars 2013 à 19:46
Bonjour,


SVP j'a cherché fatigué et sans succès à faire un programme qui écrit la valeur en lettre d'un nombre donné en chiffre! S'il Vous Plait un peu d'aide serait la bienvenue!
A voir également:

1 réponse

Profil bloqué
2 mars 2013 à 20:55
Une approche simple, j'espère te servira de modèle pour une étendue plus large.

program NombreS_Lettres;

Const 
Unites :  array [0 .. 9] of String =('Zero', 'Un', 'Deux', 'Trois', 'Quatre', 'Cinq',
'Six', 'Sept', 'Huit', 'Neuf');

Dix_DixNeuf : array [0 .. 9] of String =('Dix', 'Onze', 'Douze', 'Treize',
'Quatorze', 'Quinze', 'Seize', 'Dix-sept', 'Dix-huit', 'Dix-neuf');

Diz_Arrondies :  array [0 .. 7] of String =('Vingt', 'Trente', 'Quarante',
'Cinquante', 'Soixante', 'Soixante-dix', 'Quatre-vingt', 'Quatre-vingt-dix');

var X, R, Q : Integer;
Trait : Char;
S, Corde : String;

begin

Trait := '-';
Corde := 'et';
repeat
Write('Saisir un nombre 0 .. 99 : ');
Readln(X);
until X > - 1 and X < 100;

case X of
0 .. 9 : S := Unites[X];

10 .. 19 : begin
R := X mod 10;
S := Dix_DixNeuf[R];
end;

20 .. 70 : begin
R := X mod 10;
Q := X div 10;
case R of
0 : S := Diz_Arrondies[Q - 2];
1 : S := Diz_Arrondies[Q - 3] + Trait + Corde + Trait + Unites[R];
2 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
3 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
4 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
5 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
6 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
7 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
8 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
9 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];

end;
end;

71 .. 79 : begin
R := X mod 10;
Q := X div 10;
case R of
1 : S := Diz_Arrondies[Q - 3] + Trait + Corde + Trait + Dix_DixNeuf[R];
2 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
3 : S := Diz_Arrondies[Q - 3] + Trait + Trait + Dix_DixNeuf[R];
4 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
5 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
6 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
7 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
8 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
9 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
end;
end;

80 .. 90 : begin
R := X mod 10;
Q := X div 10;
case R of
0 : S := Diz_Arrondies[Q - 2];
1 : S := Diz_Arrondies[Q - 2] + Trait + Corde + Trait + Unites[R];
2 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
3 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
4 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
5 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
6 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
7 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
8 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
9 : S := Diz_Arrondies[Q - 2] + Trait + Unites[R];
end;
end;

91 .. 99 : begin
R := X mod 10;
Q := X div 10;
case R of
1 : S := Diz_Arrondies[Q - 3] + Trait + Corde + Trait + Dix_DixNeuf[R];
2 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
3 : S := Diz_Arrondies[Q - 3] + Trait + Trait + Dix_DixNeuf[R];
4 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
5 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
6 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
7 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
8 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
9 : S := Diz_Arrondies[Q - 3] + Trait + Dix_DixNeuf[R];
end;
end;
end;
WriteLn(S);
Readln;

  { TODO -oUser -cConsole Main : placez le code ici }
end.
0
maxwell1093 Messages postés 40 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 10 août 2014
3 mars 2013 à 19:46
merci!!Xa m'aidera beaucoup!
0