Convertir les chiffres arabes en chiffres romains (limité de 1 à 3999)

Olivier Marolleau

- Titre : Convertir les chiffres arabes en chiffres romains (limité de 1 à 3999)

- Auteur : Olivier Marolleau

- Parution : 17 mai 2006

- Licence : Copyright ® 2006 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

Produit : 4D toutes versions  ·  Plateforme : Mac & Win ♪

Que ce soit pour donner un style à une application, pour correspondre à des normes d'état civil, ou pour archiver d'anciens documents, les chiffres romains sont toujours présents dans notre vie quotidienne.

Il est donc intéressant de posséder une fonction qui permette de convertir les chiffres arabes en chiffres romains.

La fonction ci-dessous effectuera cette tâche. Il suffit de lui passer un entier en paramètre. Cette fonction renverra alors soit le chiffre romain correspondant à l'entier passé, soit le mot "error" si le chiffre passé est en dehors des possibilités de la fonction.

Code de la fonction :

1. `---------- Declaration variable ---------

3. C_ENTIER($1)

4. C_ALPHA(32;$0)

6. TABLEAU ALPHA(1;$_Nb_10;4)

7. TABLEAU ALPHA(1;$_Nb_05;3)

9. C_ALPHA(32;$Roman_Chiffre)

10. C_ENTIER LONG($Chiffre)

11. C_ENTIER LONG($Arabes_Chiffre)

13. `---------- Initialisation variable ---------

15. $_Nb_10{1}:="I"

16. $_Nb_10{2}:="X"

17. $_Nb_10{3}:="C"

18. $_Nb_10{4}:="M"

20. $_Nb_05{1}:="V"

21. $_Nb_05{2}:="L"

22. $_Nb_05{3}:="D"

24. $Arabes_Chiffre:=$1

26. `---------- Convertion Chiffre V1 ---------

28. Si (($Arabes_Chiffre>0) & ($Arabes_Chiffre<4000))

30. Boucle ($x1;3;0;-1)

32. $Chiffre:=$Arabes_Chiffre\(10^$x1)

34. Si ($Chiffre>=1)

36. $Arabes_Chiffre:=$Arabes_Chiffre-($Chiffre*(10^$x1))

38. Au cas ou

40. : ($Chiffre<=3)

41. Boucle ($x2;$Chiffre;1;-1)

42. $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}

43. Fin de boucle

45. : ($Chiffre=9)

46. $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}+$_Nb_10{$x1+2}

48. : ($Chiffre=4)

49. $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}+$_Nb_05{$x1+1}

51. Sinon

52. $Roman_Chiffre:=$Roman_Chiffre+$_Nb_05{$x1+1}

53. Boucle ($x2;$Chiffre-5;1;-1)

54. $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}

55. Fin de boucle

57. Fin de cas

59. Fin de si

61. Fin de boucle

63. $0:=$Roman_Chiffre

65. Sinon

67. $0:="Error"

69. Fin de si