IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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 :

 
Sélectionnez
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.
   `---------- Declaration variable ---------

C_ENTIER($1)
C_ALPHA(32;$0)

TABLEAU ALPHA(1;$_Nb_10;4)
TABLEAU ALPHA(1;$_Nb_05;3)

C_ALPHA(32;$Roman_Chiffre)
C_ENTIER LONG($Chiffre)
C_ENTIER LONG($Arabes_Chiffre)

   `---------- Initialisation variable ---------

$_Nb_10{1}:="I"
$_Nb_10{2}:="X"
$_Nb_10{3}:="C"
$_Nb_10{4}:="M"

$_Nb_05{1}:="V"
$_Nb_05{2}:="L"
$_Nb_05{3}:="D"

$Arabes_Chiffre:=$1

   `---------- Convertion Chiffre V1 ---------

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

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

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

      Si ($Chiffre>=1)

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

         Au cas ou

            : ($Chiffre<=3)
               Boucle ($x2;$Chiffre;1;-1)
                  $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}
               Fin de boucle

            : ($Chiffre=9)
               $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}+$_Nb_10{$x1+2}

            : ($Chiffre=4)
               $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}+$_Nb_05{$x1+1}

            Sinon
               $Roman_Chiffre:=$Roman_Chiffre+$_Nb_05{$x1+1}
               Boucle ($x2;$Chiffre-5;1;-1)
                  $Roman_Chiffre:=$Roman_Chiffre+$_Nb_10{$x1+1}
               Fin de boucle

         Fin de cas

      Fin de si

   Fin de boucle

   $0:=$Roman_Chiffre

Sinon

   $0:="Error"

Fin de si

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2006 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site ni 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.