Pedro
Nombre de messages : 1595 Date d'inscription : 19/01/2014
| Sujet: Traduction des nombres en lettres. Jeu 12 Mar 2015 - 22:13 | |
| Bonsoir. L'un d'entre vous pourrait-il vérifier la table affichée par le code ci-dessous. Merci. - Code:
-
dim a$, n%
width 0,1600 height 0,900
memo 1 bar_vertical 1 width 1,500 height 1,900 font_size 1,18
for n%=1 to 100 traduire_nombre_francais_en_lettre(n%) item_add 1,str$(n%)+": '"+a$+"'" next n%
end
sub traduire_nombre_francais_en_lettre(param1)
' * les nombres jusqu'à 16 : zéro, un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix, onze, douze, treize, quatorze, quinze et seize. ' * puis les dizaines jusqu'à 60 : vingt, trente, quarante, cinquante et soixante. ' * et enfin 100 et 1000 : cent et mille.
' Les mots composés
' Lorsqu'il n'est pas possible d'écrire un mot simple, on compose les nombres avec plusieurs mots simples. Se pose alors le problème du trait d'union.
' Prennent un trait d'union tous les nombres composés inférieurs à 100 ne se terminant pas en 1 sauf 81 et 91 : ' * dix-sept, quarante-huit... ' * quatre cent cinquante-trois...
' Pour les nombres se terminant en 1, on ajoute la conjonction et : ' * soixante et un ' * soixante et onze ' * cinquante et un
' 81 et 91 sont écrits avec un trait d'union: ' * quatre-vingt-un ' * quatre-vingt-onze
' 20 et 100 s'accordent quand ils sont multipliés par un nombre sans être suivis par un autre nombre. ' * quatre-vingts ' * quatre-vingt-trois ' * quatre cents ' * quatre cent vingt et un
dim_local nl$(20), c$, k%, x%, y
c$="zéro,un,deux,trois,quatre,cinq,six,sept,huit,neuf,dix,onze,douze,treize,quatorze,quinze,seize,dix-sept,dix-huit,dix-neuf," for k%=0 to 19 x%=instr(c$,",") nl$(k%)=left$(c$,x%-1) c$=right_pos$(c$,x%+1) next k%
a$=""
if param1>999 x%=int(param1/1000) if x%>0 then a$=a$+nl$(x%)+" " a$=a$+"mille " param1=param1-x%*1000 end_if
if param1>99 x%=int(param1/100) if x%>1 a$=a$+nl$(x%)+" cents " else a$=a$+" cent" end_if param1=param1-x%*100 end_if
if param1>19 y=int(param1/10)
select y case 2:a$=a$+"vingt-" case 3:a$=a$+"trente-" case 4:a$=a$+"quarante-" case 5:a$=a$+"cnquante-" case 6:a$=a$+"soixante-" case 7:a$=a$+"soixante-dix-" case 8:a$=a$+"quatre-vingt-" case 9:a$=a$+"quatre-vingt-dix-" end_select param1=param1-y*10 if y<8 and param1=1 then a$=left$(a$,len(a$)-1)+" et "
if (y=7 or y=9) and param1<7 if right$(a$,4)=" et " then a$=left$(a$,len(a$)-4) a$=left$(a$,len(a$)-4) if y=7 and param1=1 then a$=a$+" et " a$=a$+nl$(param1+10) param1=param1-10 end_if end_if
if param1>0 then a$=a$+nl$(param1) a$=trim$(a$)
if right$(a$,2)="s-" then a$=left$(a$,len(a$)-2) if right$(a$,1)="-" then a$=left$(a$,len(a$)-1) if right$(a$,5)="vingt" or right$(a$,4)="cent" then a$=a$+"s" end_sub | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Traduction des nombres en lettres. Ven 13 Mar 2015 - 0:06 | |
| A priori, je dirais ceci: - Code:
-
1: '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: 'vingts' <==== 'vingt' dans le "s" 21: 'vingt et un' 22: 'vingt-deux' 23: 'vingt-trois' 24: 'vingt-quatre' 25: 'vingt-cinq' 26: 'vingt-six' 27: 'vingt-sept' 28: 'vingt-huit' 29: 'vingt-neuf' 30: 'trente' 31: 'trente et un' 32: 'trente-deux' 33: 'trente-trois' 34: 'trente-quatre' 35: 'trente-cinq' 36: 'trente-six' 37: 'trente-sept' 38: 'trente-huit' 39: 'trente-neuf' 40: 'quarante' 41: 'quarante et un' 42: 'quarante-deux' 43: 'quarante-trois' 44: 'quarante-quatre' 45: 'quarante-cinq' 46: 'quarante-six' 47: 'quarante-sept' 48: 'quarante-huit' 49: 'quarante-neuf' 50: 'cnquante' <== 'cinquante' avec un "i" 51: 'cnquante et un' 52: 'cnquante-deux' 53: 'cnquante-trois' 54: 'cnquante-quatre' 55: 'cnquante-cinq' 56: 'cnquante-six' 57: 'cnquante-sept' 58: 'cnquante-huit' 59: 'cnquante-neuf' 60: 'soixante' 61: 'soixante et un' 62: 'soixante-deux' 63: 'soixante-trois' 64: 'soixante-quatre' 65: 'soixante-cinq' 66: 'soixante-six' 67: 'soixante-sept' 68: 'soixante-huit' 69: 'soixante-neuf' 70: 'soixante-dix' 71: 'soixante et onze' 72: 'soixante-douze' 73: 'soixante-treize' 74: 'soixante-quatorze' 75: 'soixante-quinze' 76: 'soixante-seize' 77: 'soixante-dix-sept' 78: 'soixante-dix-huit' 79: 'soixante-dix-neuf' 80: 'quatre-vingts' 81: 'quatre-vingt-un' 82: 'quatre-vingt-deux' 83: 'quatre-vingt-trois' 84: 'quatre-vingt-quatre' 85: 'quatre-vingt-cinq' 86: 'quatre-vingt-six' 87: 'quatre-vingt-sept' 88: 'quatre-vingt-huit' 89: 'quatre-vingt-neuf' 90: 'quatre-vingt-dix' 91: 'quatre-vingt-onze' 92: 'quatre-vingt-douze' 93: 'quatre-vingt-treize' 94: 'quatre-vingt-quatorze' 95: 'quatre-vingt-quinze' 96: 'quatre-vingt-seize' 97: 'quatre-vingt-dix-sept' 98: 'quatre-vingt-dix-huit' 99: 'quatre-vingt-dix-neuf' 100: 'cents' <=== 'cent' sans le "s"
Voici un extrait de orthonet: - Code:
-
17 dix-sept 18 dix-huit 19 dix-neuf 20 vingt 21 vingt et un(e) 22 vingt-deux (...) 29 vingt-neuf 30 trente 31 trente et un (e) 32 trente-deux (...) 39 trente-neuf 40 quarante 41 quarante et un 42 quarante-deux (...) 49 quarante-neuf 50 cinquante 51 cinquante et un(e) 52 cinquante-deux (...) 59 cinquante-neuf 60 soixante 61 soixante et un(e) 62 soixante-deux (...) 69 soixante-neuf 70 soixante-dix 71 soixante et onze 72 soixante-douze (...) 77 soixante-dix-sept 78 soixante-dix-huit 79 soixante-dix-neuf 80 quatre-vingts 81 quatre-vingt-un(e) 82 quatre-vingt-deux (...) 89 quatre-vingt-neuf 90 quatre-vingt-dix 91 quatre-vingt-onze 99 quatre-vingt-dix-neuf 100 cent 101 cent un(e) 102 cent deux (...) 200 deux cents 201 deux cent un(e) 202 deux cent deux (...) 216 deux cent seize 217 deux cent dix-sept 218 deux cent dix-huit 219 deux cent dix-neuf 220 deux cent vingt 221 deux cent vingt et un(e) 222 deux cent vingt-deux (...) 999 neuf cent quatre-vingt-dix-neuf 1 000 mille 1 001 mille un(e) mille deux (...) 1 100 mille cent 1 101 mille cent un(e) 1 102 mille cent deux (...) 1200 mille deux cents (...) 1 900 mille neuf cents 1 910 mille neuf cent dix 1 917 mille neuf cent dix-sept 2 000 deux mille (...) 10 000 dix mille 100 000 cent mille
Et en voici un autre: | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traduction des nombres en lettres. Ven 13 Mar 2015 - 0:11 | |
| 20 : vingt ne prend pas de s 100 : cent ne prend pas de s Jette un œil ici et là | |
|
Contenu sponsorisé
| Sujet: Re: Traduction des nombres en lettres. | |
| |
|