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
» Demande urgente en maths.
par JL35 Aujourd'hui à 22:26

» Compilateur FBPano
par jean_debord Aujourd'hui à 11:24

» Problème de math
par braveen Aujourd'hui à 10:53

» A propos des attributs de fichier
par papydall Hier à 14:33

» Problème de math
par Marc37 Sam 21 Oct 2017 - 23:04

» I Love You
par papydall Sam 21 Oct 2017 - 19:22

» Un petit "coucou" à tous les Panoramiciens !
par mindstorm Sam 21 Oct 2017 - 17:06

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
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 : 832
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 : 10075
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 : 5551
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
-
» lettres qui ne s'affiche pas correctement et bbcode image
» Arrondir un réel à deux chiffres après la virgule
» pour jouer avec les chiffres et les nombres
» Traduction de la ligne de Bios.
» [VX Ace] Traduction française

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