Section courante

A propos

Section administrative du site

Les chiffres romains constituent l'un des systèmes de numération les plus anciens encore utilisés de nos jours. Hérités de l'Antiquité romaine, ils ont longtemps servi à représenter les nombres dans les documents administratifs, les inscriptions monumentales, les ouvrages scientifiques et les textes historiques. Bien qu'ils soient beaucoup moins pratiques que le système décimal moderne pour effectuer des calculs arithmétiques, ils demeurent très présents dans la vie quotidienne. On les retrouve notamment dans la numérotation des chapitres et des annexes de livres, dans les préfaces d'ouvrages, sur les cadrans d'horloges, dans les noms de souverains et de papes, ainsi que dans les titres de films, de séries et d'événements dont les suites sont identifiées à l'aide de nombres romains. Leur apparence élégante et leur caractère historique expliquent en grande partie leur popularité persistante malgré les limites de ce système de représentation numérique. Les symboles fondamentaux tels que I, V, X, L, C, D et M permettent de composer la majorité des nombres couramment utilisés, selon des règles d'addition et de soustraction bien précises.

Contrairement aux systèmes de numération positionnels comme le décimal, l'octal ou l'hexadécimal, les chiffres romains ne sont toutefois pas conçus pour représenter efficacement de très grandes valeurs ni pour effectuer des opérations mathématiques complexes. Leur utilisation devient rapidement encombrante lorsque les nombres augmentent, ce qui explique pourquoi ils sont aujourd'hui principalement employés à des fins de présentation et de numérotation. Dans certaines conventions classiques, les nombres romains sont généralement limités à quelques milliers d'unités, bien qu'il existe diverses extensions historiques permettant d'aller au-delà. Pour automatiser la conversion d'un nombre décimal vers son équivalent romain, il est possible de mettre en oeuvre un algorithme analysant successivement les centaines, les dizaines et les unités afin de construire la représentation appropriée. Le programme QuickBASIC/QBasic présenté ci-dessous applique précisément cette méthode. À partir d'une valeur numérique, il génère automatiquement la chaîne de caractères correspondant au nombre romain équivalent en respectant les règles traditionnelles telles que IV pour 4, IX pour 9, XL pour 40 ou XC pour 90. L'exemple fourni affiche les correspondances pour les cent premiers nombres, illustrant clairement le fonctionnement de l'algorithme et la structure particulière de ce système de numération historique. Cet exemple constitue également une excellente démonstration de manipulation de chaînes de caractères et de structures conditionnelles dans QuickBASIC, tout en mettant en valeur un aspect fascinant de l'histoire des mathématiques et de l'écriture des nombres.

Voici leur représentation classique :

Nombre Romain Nombre décimal Nombre octal Nombre hexadécimal
I 1 1 1
II 2 2 2
III 3 3 3
IV 4 4 4
V 5 5 5
VI 6 6 6
VII 7 7 7
VIII 8 10 8
IX 9 11 9
X 10 12 A
XI 11 13 B
XII 12 14 C
XIII 13 15 D
XIV 14 16 E
XV 15 17 F
... ... ... ...

Toutefois, il est a noter que les chiffres romain ne dépasse que de très peu les milliers en terme de numérotation. Pour pouvoir générer automatiquement les nombres à partir de l'équivalence numérique, vous trouverez la réponse que vous souhaitez, à l'aide du code source QuickBASIC/QBasic suivant :

  1. DECLARE FUNCTION NumberToRomain$ (X%)
  2.  
  3. FOR I% = 1 TO 100
  4.  PRINT STR$(I%) + " = " + NumberToRomain$(I%)
  5. NEXT
  6.  
  7. FUNCTION NumberToRomain$ (X%)
  8.  S$ = ""
  9.  SELECT CASE (X% MOD 1000) \ 100
  10.   CASE 9: S$ = S$ + "CM"
  11.   CASE 8: S$ = S$ + "DCCC"
  12.   CASE 7: S$ = S$ + "DCC"
  13.   CASE 6: S$ = S$ + "DC"
  14.   CASE 5: S$ = S$ + "D"
  15.   CASE 4: S$ = S$ + "CD"
  16.   CASE 3: S$ = S$ + "CCC"
  17.   CASE 2: S$ = S$ + "CC"
  18.   CASE 1: S$ = S$ + "C"
  19.  END SELECT
  20.  SELECT CASE (X% MOD 100) \ 10
  21.   CASE 9: S$ = S$ + "XC"
  22.   CASE 8: S$ = S$ + "LXXX"
  23.   CASE 7: S$ = S$ + "LXX"
  24.   CASE 6: S$ = S$ + "LX"
  25.   CASE 5: S$ = S$ + "L"
  26.   CASE 4: S$ = S$ + "XL"
  27.   CASE 3: S$ = S$ + "XXX"
  28.   CASE 2: S$ = S$ + "XX"
  29.   CASE 1: S$ = S$ + "X"
  30.  END SELECT
  31.  SELECT CASE X% MOD 10
  32.   CASE 9: S$ = S$ + "IX"
  33.   CASE 8: S$ = S$ + "VIII"
  34.   CASE 7: S$ = S$ + "VII"
  35.   CASE 6: S$ = S$ + "VI"
  36.   CASE 5: S$ = S$ + "V"
  37.   CASE 4: S$ = S$ + "IV"
  38.   CASE 3: S$ = S$ + "III"
  39.   CASE 2: S$ = S$ + "II"
  40.   CASE 1: S$ = S$ + "I"
  41.  END SELECT
  42.  NumberToRomain$ = S$
  43. END FUNCTION

on obtiendra le résultat suivant :

1 = I
2 = II
3 = III
4 = IV
5 = V
6 = VI
7 = VII
8 = VIII
9 = IX
10 = X
11 = XI
12 = XII
13 = XIII
14 = XIV
15 = XV
16 = XVI
17 = XVII
18 = XVIII
19 = XIX
20 = XX
21 = XXI
22 = XXII
23 = XXIII
24 = XXIV
25 = XXV
26 = XXVI
27 = XXVII
28 = XXVIII
29 = XXIX
30 = XXX
31 = XXXI
32 = XXXII
33 = XXXIII
34 = XXXIV
35 = XXXV
36 = XXXVI
37 = XXXVII
38 = XXXVIII
39 = XXXIX
40 = XL
41 = XLI
42 = XLII
43 = XLIII
44 = XLIV
45 = XLV
46 = XLVI
47 = XLVII
48 = XLVIII
49 = XLIX
50 = L
51 = LI
52 = LII
53 = LIII
54 = LIV
55 = LV
56 = LVI
57 = LVII
58 = LVIII
59 = LIX
60 = LX
61 = LXI
62 = LXII
63 = LXIII
64 = LXIV
65 = LXV
66 = LXVI
67 = LXVII
68 = LXVIII
69 = LXIX
70 = LXX
71 = LXXI
72 = LXXII
73 = LXXIII
74 = LXXIV
75 = LXXV
76 = LXXVI
77 = LXXVII
78 = LXXVIII
79 = LXXIX
80 = LXXX
81 = LXXXI
82 = LXXXII
83 = LXXXIII
84 = LXXXIV
85 = LXXXV
86 = LXXXVI
87 = LXXXVII
88 = LXXXVIII
89 = LXXXIX
90 = XC
91 = XCI
92 = XCII
93 = XCIII
94 = XCIV
95 = XCV
96 = XCVI
97 = XCVII
98 = XCVIII
99 = XCIX
100 = C


Dernière mise à jour : Mercredi, le 14 septembre 2016