|
Les chiffres romain bien que peut efficace sont très utilisés encore aujourd'hui pour numéroter des annexes, suite de films et des pages de prélude.
Voici leur représentation classique:
| 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 automatiquent les nombres à partir de l'équivalence numérique, vous trouverez la réponse que vous souhaitez, à l'aide du code source Modula-2 suivant:
MODULE romain;
FROM InOut IMPORT WriteString, WriteLn;
FROM SWholeIO IMPORT WriteInt;
FROM Strings IMPORT Concat;
TYPE
STRING = ARRAY[0..255] OF CHAR;
PROCEDURE NumberToRomain(X:INTEGER):STRING;
VAR
S:STRING;
BEGIN
S := "";
CASE (X MOD 1000) DIV 100 OF
9: Concat(S,"CM",S)
| 8: Concat(S,"DCCC",S)
| 7: Concat(S,"DCC",S)
| 6: Concat(S,"DC",S)
| 5: Concat(S,"D",S)
| 4: Concat(S,"CD",S)
| 3: Concat(S,"CCC",S)
| 2: Concat(S,"CC",S)
| 1: Concat(S,"C",S)
ELSE ;
END;
CASE (X MOD 100) DIV 10 OF
9: Concat(S,"XC",S)
| 8: Concat(S,"LXXX",S)
| 7: Concat(S,"LXX",S)
| 6: Concat(S,"LX",S)
| 5: Concat(S,"L",S)
| 4: Concat(S,"XL",S)
| 3: Concat(S,"XXX",S)
| 2: Concat(S,"XX",S)
| 1: Concat(S,"X",S)
ELSE ;
END;
CASE X MOD 10 OF
9: Concat(S,"IX",S)
| 8: Concat(S,"VIII",S)
| 7: Concat(S,"VII",S)
| 6: Concat(S,"VI",S)
| 5: Concat(S,"V",S)
| 4: Concat(S,"IV",S)
| 3: Concat(S,"III",S)
| 2: Concat(S,"II",S)
| 1: Concat(S,"I",S)
ELSE ;
END;
RETURN S;
END NumberToRomain;
VAR
I:INTEGER;
BEGIN
FOR I:=1 TO 100 DO
WriteInt(I,0);
WriteString(" = ");
WriteString(NumberToRomain(I));
WriteLn;
END
END romain.
|
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
|
|