facile
Lire les chiffres romains
Les chiffres romains sont un système ancien d'écriture des nombres.
Les chiffres (symboles) romains sont: I, V, X, L, C, D et M. Ces symboles représentent respectivement 1, 5, 10, 50, 100, 500 et 1000 en base dix.
Cette association pourra être modélisée par un dictionnaire défini une fois pour toute (une constante) donné ci-dessous :
VALEUR = { "I" : 1 , "V" : 5 , "X" : 10 , "L" : 50 , "C" : 100 , "D" : 500 , "M" : 1000 }
Principe de l'algorithme
Le principe est de commencer à zéro, puis d'additionner ou retrancher les valeurs de tous les symboles représentant un nombre écrit en chiffres romains.
Si un symbole a une valeur supérieure ou égale à celui qui se trouve à sa droite, il est ajouté .
Exemple XVI
"XVI" est le nombre 16 car "X" vaut 10 qui est supérieur à 5 (valeur de "V"), qui est lui même supérieur à 1 (valeur de "I").
Ainsi "XVI" vaut 0 + 10 + 5 + 1 = 16.
Si un symbole a une valeur strictement inférieure à celui qui se trouve à sa droite, il est retranché .
Exemple XIV
"XIV" est le nombre 14 car "X" vaut 10 qui est supérieur ou égal à 1 (valeur de "I"), qui est lui même inférieur à 5 (valeur de "V").
Ainsi "XIV" vaut 0 + 10 - 1 + 5 = 14.
Si le symbole est en dernière position, il est ajouté .
Travail à réaliser
On souhaite créer une fonction valeur qui prend en paramètre une chaîne de caractères (non vide) représentant un nombre écrit en chiffres romains et qui renvoie sa valeur en écriture décimale.
Exemples
>>> valeur ( "XVI" )
16
>>> valeur ( "MMXXII" )
2022
>>> valeur ( "CDII" )
402
>>> valeur ( "XLII" )
42
Aide
Regardons l'exemple valeur("CDII") :
Les valeurs associées à "CDII" sont successivement : \(100\) ; \(500\) ; \(1\) ; \(1\) .
Nous avons \(100 < 500\) , \(500 \geqslant 1\) et \(1 \geqslant 1\) .
La valeur renvoyée sera donc \(0 - 100 + 500 + 1 + 1 = 402\) .
Compléter la fonction fournie.
Version vide Version à trous
.128013s3_8ufvIy n7aS1me(P24V:Ctwi]D[hE)6o;bcdUgM/X0lqAprL-,}=+k95R{é050N0r0z0n0B0U0b0k0M0U0n0b0b0%010z0B0X010406050b0f0q0q0n0Y0j040o0J0U0f120J0l0k020n0q0X0K0k0,0r1c0Y0V0f0r0b050R191b1d1f170X041D1K051N0R1N1P1K170N0B0h0`0|0~100F0B0P0F0U1%0F0z15050=0L0U0r1Y0}0 011$1(1*1(0z1:1=1.0z0L0J0N1f1/0Y1L0z0F0`1i0b0X0n0l100u011@1!010g0@0r0l1q0r1.2f2h2m1_2p1=2s0q2u040a0k0t0Y0J0X0J0b0B1l1n0:2d0Y0Y0r0M2P1D2w0l1L0R2b2#0z29282a0N2y101*0l2r2M1.1V1X0{1^2/0B2;0l251W1.0X2U1L2Z2#36182g1n2`2n2 0Y1c0U150k0p2Y3a16392x3c1_3e3g3i0u3l2h3n2Z2.013s0n3h040k0c3w2!173z3q103C3E0k0v3I3y3a3A3O3i0+3S3K3U3M3B0J3f3D3i0I3Z3o3b1Z3r3(3t3F0m3-3L3:3N3=3*3F0e3_3#3{3%3)3P0*413p433W040p0T483/2{443?0p3k1E3m3!494h4b0p3v4m3x4o4g3d3}3E0p3H4u2!1M341D2^2(0N2,3A0M252E0/1W1L330r353m3S054N0:4V4p3d150w0W0Z0G0O0,3S0k3.3A0J150%4/4;3$14040-4X3`4h0b2k04010i014 424h4|0x4_502n0q0B154l385e1_4|0#5d592n5215010w574D4#4x5m155c5x4:5l105g153Y5x4`435n5p4$1_5s540S5w5k5q5A045C365E5W5G5h4c4e5K5F015N5D5L5153010Z5U4W5,5b5O5z5%5I5*5V5P105.5!5:5r5=0y5^3x665X5Z3m5#62015H5)605_5$5-155o5/5,5R010D6a4E5`5B5|3A6j0+0T6l6b6y046q656s5=0Q6w5y3A5{6r6n6j4d6E586h4|0$3Z064w3A0)150:0g6X5}010A3i6-3V0g150h3D0r0f0Y6=4{150s6~4a152J1c2}725a150H6e4v0k7e6g6.0l150l6A3$4?044^6S6h0l0L152B782n4|715+6n7i04750?7k7A6Y7a3Z7f7g3V150M1a0f0U7l437n7p6K6T5(6F3J7L6c106)040g3(7T4q150B7-2n0J6:04777q7h7t7D2h0P0r7w5X7z617h7j7;1_7n0!875~4c81637a7c7#7L7f7%017)0B6,7`7N044)4+4-8e6o040E8w7C7E7_846Q158z7H857^8w4|0C0C8b017n020U0z0K8P7C8t4,4.8I8F8y8A740J767G8E6 8%8#3$7C7:8q7m150(8P6U8L158N8h168j927M8;7O7Q7S8@7U4@8W960q7R8P899c8s4*8Z8}8/8-737D8*7F9m8H9o7.8K8:5M8~8O5x069394437)0r0^809y795Y7K9E8k5,7C7P9e987X6h7V9i9T9f994h7n8`9$4%9j8u8!9v7x8G8(9q8+9t9=8?9/5X8N9O7e8l9S979g9b9*3r9d9#9W6.9(9i8Y8v9L9:9n6m7r8)9@af5X9uai8J8,6f8l9ha58c5jap8$9}9C7$5,7)2U0z6|ar3x9F9w9!9V4n1D4Z4U4FaR0R4I1D0z4KaW2*2$24262(0n1;aT4I1J6P3$2U0q0d0g0n0)0r0d0F0c151v1x1z1B0k901M3n1K0w0J0B0M0B0k0f2;0k0b1i1k0B1m0k2g0Ybl1d4N6|0_0N000.0U0.2D0l0z0b0#0k0;0k2 1nbmbo0Ybq0Ybs002}1V0Mb15C1T4Q2_431{1)1+1-4S4G385KaQa.9G6*0r8p9{107@4:am3N6@046_1=6|9m83ay959?9sb@8x7b9~aK9+b{6{0Y0d0P0n0f0M0F9Ka94=a4ck3$6j7!919Q7B150z0J0=aNaJatcmas5,cpc78l7)7+6}av3B7O1d0n2W0r2U9g7@8DcCctc2cU6G6n6R369D93a06^6`6|0d0N2J2OcjcV9XcBcz9R4(9kaeb:8xaocZaj040McNcPcRc48Mc7aC6n8nb/c=8Jcac,cecgcia3048S8U9idgccc.b80zc;d06.c#4n9Pcsd1cvcxdl7Wde8rdD3Ddl8acK7Cdqcdcfchdv8i92cG159I0bdTb+9M90c%dAc)04dJcy2!c888c@d.d*d,dl9)cn9pdPdidSd9dBdfc+ccd}dkcK9YdNc*b|drc/ducFaD740;aH9id@e68_dpe2dQdjd!170Rb*aS2#a,4H0;0?0^04.
.128013s3_8ufvIy n7aS1me(P24V:Ctwi]D[hE)6o;bcdUgM/X0lqAprL-,}=+k95R{é050N0r0z0n0B0U0b0k0M0U0n0b0b0%010z0B0X010406050b0f0q0q0n0Y0j040o0J0U0f120J0l0k020n0q0X0K0k0,0r1c0Y0V0f0r0b050R191b1d1f170X041D1K051N0R1N1P1K170N0B0h0`0|0~100F0B0P0F0U1%0F0z15050=0L0U0r1Y0}0 011$1(1*1(0z1:1=1.0z0L0J0N1f1/0Y1L0z0F0`1i0b0X0n0l100u011@1!010g0@0r0l1q0r1.2f2h2m1_2p1=2s0q2u040a0k0t0Y0J0X0J0b0B1l1n0:2d0Y0Y0r0M2P1D2w0l1L0R2b2#0z29282a0N2y101*0l2r2M1.1V1X0{1^2/0B2;0l251W1.0X2U1L2Z2#36182g1n2`2n2 0Y1c0U150k0p2Y3a16392x3c1_3e3g3i0u3l2h3n2Z2.013s0n3h040k0c3w2!173z3q103C3E0k0v3I3y3a3A3O3i0+3S3K3U3M3B0J3f3D3i0I3Z3o3b1Z3r3(3t3F0m3-3L3:3N3=3*3F0e3_3#3{3%3)3P0*413p433W040p0T483/2{443?0p3k1E3m3!494h4b0p3v4m3x4o4g3d3}3E0p3H4u2!1M341D2^2(0N2,3A0M252E0/1W1L330r353m3S054N0:4V4p3d150w0W0Z0G0O0,3S0k3.3A0J150%4/4;3$14040-4X3`4h0b2k04010i014 424h4|0x4_502n0q0B154l385e1_4|0#5d592n5215010w574D4#4x5m155c5x4:5l105g153Y5x4`435n5p4$1_5s540S5w5k5q5A045C365E5W5G5h4c4e5K5F015N5D5L5153010Z5U4W5,5b5O5z5%5I5*5V5P105.5!5:5r5=0y5^3x665X5Z3m5#62015H5)605_5$5-155o5/5,5R010D6a4E5`5B5|3A6j0+0T6l6b6y046q656s5=0Q6w5y3A5{6r6n6j4d6E586h4|0$3Z064w3A0)150:0g6X5}010A3i6-3V0g150h3D0r0f0Y6=4{150s6~4a152J1c2}725a150H6e4v0k7e6g6.0l150l6A3$4?044^6S6h0l0L152B782n4|715+6n7i04750?7k7A6Y7a3Z7f7g3V150M1a0f0U7l437n7p6K6T5(6F3J7L6c106)040g3(7T4q150B7-2n0J6:04777q7h7t7D2h0P0r7w5X7z617h7j7;1_7n0!875~4c81637a7c7#7L7f7%017)0B6,7`7N044)4+4-8e6o040E8w7C7E7_846Q158z7H857^8w4|0C0C8b017n020U0z0K8P7C8t4,4.8I8F8y8A740J767G8E6 8%8#3$7C7:8q7m150(8P6U8L158N8h168j927M8;7O7Q7S8@7U4@8W960q7R8P899c8s4*8Z8}8/8-737D8*7F9m8H9o7.8K8:5M8~8O5x069394437)0r0^809y795Y7K9E8k5,7C7P9e987X6h7V9i9T9f994h7n8`9$4%9j8u8!9v7x8G8(9q8+9t9=8?9/5X8N9O7e8l9S979g9b9*3r9d9#9W6.9(9i8Y8v9L9:9n6m7r8)9@af5X9uai8J8,6f8l9ha58c5jap8$9}9C7$5,7)2U0z6|ar3x9F9w9!9V4n1D4Z4U4FaR0R4I1D0z4KaW2*2$24262(0n1;aT4I1J6P3$2U0q0d0g0n0)0r0d0F0c151v1x1z1B0k901M3n1K0w0J0B0M0B0k0f2;0k0b1i1k0B1m0k2g0Ybl1d4N6|0_0N000.0U0.2D0l0z0b0#0k0;0k2 1nbmbo0Ybq0Ybs002}1V0Mb15C1T4Q2_431{1)1+1-a.432A2r2t152G0o0M0Y130z2H0j2b1m4X4T5y374WaQb$4h7)6+8w7@4:am3N6@046_1=6|9m83ay959?9sc68x7b9~aK9+ca6{0Y0d0P0n0f0M0F9Ka94=a4cz3$6j7!919Q7B150z0J0=aNaJatcBas5,cEcm8l7)7+6}av3B7O1d0n2W0r2U9g7@8DcRcIchc-6G6n6R369D93a06^6`6|0d0N2J2Ocyc.9XcQcO9R4(9kae9{8fahc=aj040Mc$c(c*cj8McmaC6n8n8pcC9pcpc~ctcvcxa3048S8U9idvcrd0b80zd3df6.c@4n9PcHdgcKcMdA7Wd48JdS3DdA8acZ7CdFcscucwdK8i92cV159I0bd,b ag90c_dPc{04dYcN2!cn88d6e0d|d~dA9)dt9wd(dxd+dodQ8Jebd*dzcZ9Yd$c|cbdGd1dJcUaD740;aH9ie6ek8_dEc}crecejc^aP4O2#b`4H4R17aU0;0?0^04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)