FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Aujourd'hui à 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Aujourd'hui à 19:58

» Compilateur FBPano
par jean_debord Aujourd'hui à 8:49

» un nouveau editeur panobasic
par Jean Claude Hier à 20:05

» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Pedro Alvarez Hier à 19:31

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

» A chacun son point de vue
par papydall Mar 8 Aoû 2017 - 17:20

» Problème avec les chaines de caractères
par bignono Dim 6 Aoû 2017 - 9:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Traduction des nombres en lettres.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

Nombre de messages : 803
Date d'inscription : 19/01/2014

MessageSujet: Traduction des nombres en lettres.   Ven 13 Mar 2015 - 0: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Traduction des nombres en lettres.   Ven 13 Mar 2015 - 2: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:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traduction des nombres en lettres.   Ven 13 Mar 2015 - 2:11

20 : vingt  ne prend pas de s
100 : cent ne prend pas de s

Jette un œil ici et
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Traduction des nombres en lettres.   

Revenir en haut Aller en bas
 
Traduction des nombres en lettres.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Trait qui sépare le nombre de messages au nombres de sujets ect
» lettres qui ne s'affiche pas correctement et bbcode image
» Titres des catégories et taille des lettres
» Arrondir un réel à deux chiffres après la virgule
» Compteur de lettres, affiché sous le message.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: