Bonjour,
Petite fonction de transformation de chiffres en lettres. D'abord mettre les trois fonctions suivantes en procedure globale du projet
1) NCentaine
2) NDizaine
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 PROCEDURE NCentaine(Reste) sSvalLettreMC est une chaîne Dividente est un entier Dividente = Reste/100 Reste = modulo(Reste, 100) SELON Dividente CAS 9 : sSvalLettreMC = "Neuf Cent " CAS 8 : sSvalLettreMC = "Huit Cent " CAS 7 : sSvalLettreMC = "Sept Cent " CAS 6 : sSvalLettreMC = "Six Cent " CAS 5 : sSvalLettreMC = "Cinq Cent " CAS 4 : sSvalLettreMC = "Quatre Cent " CAS 3 : sSvalLettreMC = "Trois Cent " CAS 2 : sSvalLettreMC = "Deux Cent " CAS 1 : sSvalLettreMC = "Cent " FIN sSvalLettreMC = sSvalLettreMC + NDizaine(Reste) RENVOYER sSvalLettreMC
3) NUnités
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 PROCEDURE NDizaine(Reste) nQuotient, Dividente est un entier sValLettreC1 est une chaîne Dividente = Reste/10 Reste = modulo(Reste,10) SELON Dividente CAS 9 : nQuotient = Reste/1 SELON nQuotient CAS 6 : sValLettreC1 = "Quatre Vingt Seize " CAS 5 : sValLettreC1 = "Quatre Vingt Quinze " CAS 4 : sValLettreC1 = "Quatre Vingt Quatorze " CAS 3 : sValLettreC1 = "Quatre Vingt Treize " CAS 2 : sValLettreC1 = "Quatre Vingt Douze " CAS 1 : sValLettreC1 = "Quatre Vingt Onze " CAS 0 : sValLettreC1 = "Quatre Vingt Dix " AUTRE CAS : sValLettreC1 = "Quatre Vingt Dix " sValLettreC1 = sValLettreC1 + NUnités(nQuotient) FIN CAS 8 : sValLettreC1 = "Quatre Vingt " nQuotient = Reste/1 sValLettreC1 = sValLettreC1 + NUnités(nQuotient) CAS 7 : nQuotient = Reste/1 SELON nQuotient CAS 6 : sValLettreC1 = "Soixante Seize " CAS 5 : sValLettreC1 = "Soixante Quinze " CAS 4 : sValLettreC1 = "Soixante Quatorze " CAS 3 : sValLettreC1 = "Soixante Treize " CAS 2 : sValLettreC1 = "Soixante Douze " CAS 1 : sValLettreC1 = "Soixante Onze " CAS 0 : sValLettreC1 = "Soixante Dix " AUTRE CAS : sValLettreC1 = "Soixante Dix " sValLettreC1 = sValLettreC1 + NUnités(nQuotient) FIN CAS 6 : sValLettreC1 = "Soixante " nQuotient = Reste/1 sValLettreC1 = sValLettreC1 + NUnités(nQuotient) CAS 5 : sValLettreC1 = "Cinquante " nQuotient = Reste/1 sValLettreC1 = sValLettreC1 + NUnités(nQuotient) CAS 4 : sValLettreC1 = "Quarante " nQuotient = Reste/1 sValLettreC1 = sValLettreC1 + NUnités(nQuotient) CAS 3 : sValLettreC1 = "Trente " nQuotient = Reste/1 sValLettreC1 = sValLettreC1 + NUnités(nQuotient) CAS 2 : sValLettreC1 = "vingt " nQuotient = Reste/1 sValLettreC1 = sValLettreC1 + NUnités(nQuotient) CAS 1 : nQuotient = Reste/1 SELON nQuotient CAS 6 : sValLettreC1 = "Seize " CAS 5 : sValLettreC1 = "Quinze " CAS 4 : sValLettreC1 = "Quatorze " CAS 3 : sValLettreC1 = "Treize " CAS 2 : sValLettreC1 = "Douze " CAS 1 : sValLettreC1 = "Onze " CAS 0 : sValLettreC1 = "Dix " AUTRE CAS : sValLettreC1 = "Dix " sValLettreC1 = sValLettreC1 + NUnités(nQuotient) FIN CAS 0 : sValLettreC1 = sValLettreC1 + NUnités(Reste) FIN RENVOYER sValLettreC1
et la fonction principale (finale)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 PROCEDURE NUnités(Reste) Dividente est un entier sLettreUnité est une chaîne Dividente = Reste/1 SELON Dividente CAS 9 : sLettreUnité = "Neuf " CAS 8 : sLettreUnité = "Huit " CAS 7 : sLettreUnité = "Sept " CAS 6 : sLettreUnité = "Six " CAS 5 : sLettreUnité = "Cinq " CAS 4 : sLettreUnité = "Quatre " CAS 3 : sLettreUnité = "Trois " CAS 2 : sLettreUnité = "Deux " CAS 1 : sLettreUnité = "Un " FIN RENVOYER sLettreUnité
Ce code s'arrête au milliard, mais vous pouvez le modifier pour plus. J'espère que cela vous aidera.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 PROCEDURE ConvertirEnLettres(MonChiffre) sMonCHiffreEnlettres, sIntermed est une chaîne nIter, i, nChiff sont des entiers //On divise la taille du chiffre par 3 pour voir le nombre de centaine par 3 nIter = Taille(MonChiffre)/3 //Si le reste de la division euclidienne est égale à Zéro => la taille du chiffre //est un multiple de 3 SI modulo(Taille(MonChiffre), 3) > 0 ALORS //Comme c'est # 0 on incrémente de 1 pour la centaine supérieure nIter++ //Astuce pour récupérer le chiffre avec la fonction Milieu sIntermed = "00" + MonChiffre SINON sIntermed = "00" + MonChiffre FIN //Tableau qui va contenir le(s) chiffre(s) intermédiaires tabMonTableauDeLettres est un tableau de nIter chaînes POUR i = 1 _A_ nIter //Extraction de la centaine pour convertion nChiff = Milieu(sIntermed, (Taille(sIntermed) + 1 - 3*i), 3) SELON i CAS 1 SI nChiff = 0 ALORS // Dans le cas de Zéro (0) SI Taille(MonChiffre) = 1 ALORS tabMonTableauDeLettres[1] = "Zéro" FIN SINON tabMonTableauDeLettres[1] = NCentaine(Val(nChiff)) FIN CAS 2 SELON nChiff CAS 0 tabMonTableauDeLettres[2] = NCentaine(Val(nChiff)) // Dans le cas de Mille dans la langue française. // Si vous mettez le Cas 1 en commentaire, ça donnera Un Mille(s) au lieu de Mille(s) CAS 1 tabMonTableauDeLettres[2] = "Mille(s) " AUTRE CAS tabMonTableauDeLettres[2] = NCentaine(Val(nChiff)) + "Mille(s) " FIN CAS 3 SI nChiff = 0 ALORS tabMonTableauDeLettres[3] = NCentaine(Val(nChiff)) SINON tabMonTableauDeLettres[3] = NCentaine(Val(nChiff)) + "Million(s) " FIN CAS 4 SI nChiff = 0 ALORS tabMonTableauDeLettres[4] = NCentaine(Val(nChiff)) SINON tabMonTableauDeLettres[4] = NCentaine(Val(nChiff)) + "Milliard(s) " FIN // A + du milliard continuer ici. Un chiffre de + de 12 chiffres // cas 5 AUTRE CAS FIN FIN //Concaténation des chaines pour la chaine finale SELON Taille(MonChiffre) CAS <= 3 sMonCHiffreEnlettres = tabMonTableauDeLettres[1] CAS <= 6 sMonCHiffreEnlettres = tabMonTableauDeLettres[2] + tabMonTableauDeLettres[1] CAS <= 9 sMonCHiffreEnlettres = tabMonTableauDeLettres[3] + tabMonTableauDeLettres[2] + tabMonTableauDeLettres[1] CAS <= 12 sMonCHiffreEnlettres = tabMonTableauDeLettres[4] + tabMonTableauDeLettres[3] + tabMonTableauDeLettres[2] + tabMonTableauDeLettres[1] AUTRE CAS FIN //Commenter cette ligne si ce n'est des euros sMonCHiffreEnlettres = sMonCHiffreEnlettres + " " RENVOYER sMonCHiffreEnlettres
Partager