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 :
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