débutant
Géométrie vectorielle
Cette page regroupe différents exercices simples sur la géométrie vectorielle.
Les exercices sont tous indépendants et peuvent être traités dans un ordre quelconque.
Coordonnées décimales
Dans tous les exercices, les coordonnées proposées sont des nombres décimaux (nombres flottants dit-on en informatique).
Python représente les nombres décimaux en binaire et doit, dans certains cas, les arrondir.
Dans ces exercices, les tests secrets vérifient donc que les valeurs renvoyées par chaque fonction sont proches à \(10^{-6}\) près des valeurs attendues.
assert
?
Le mot clé assert
est utilisé en Python afin de vérifier que des propositions sont vraies.
Ainsi, l'expression assert 3 + 5 * 7 == 38
permet de vérifier que l'expression 3 + 5 * 7
est bien évaluée à 38
.
Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.
Milieu d'un segment
Soit \(A\) et \(B\) deux points du plan.
Écrire la fonction milieu
qui prend en paramètres les coordonnées x_A
, y_A
, x_B
et y_B
des points \(A\)
et \(B\) et renvoie les coordonnées du milieu \(M\) de \(\left[AB\right]\) .
Entier \(\longrightarrow\) Décimal
Lorsque Python effectue une division, il considère toujours que le résultat est un nombre décimal (un nombre flottant dit-on en informatique).
C'est pourquoi l'expression ( 2 + 6 ) / 2
est évaluée à 4.0
.
Exemples
>>> milieu ( 0 , 2 , 3 , 6 )
(1.5, 4.0)
>>> milieu ( 10 , 4 , 5 , - 8 )
(7.5, -2.0)
Coordonnées d'un vecteur
Soit \(A\) et \(B\) deux points du plan.
Écrire la fonction vecteur
qui prend en paramètres les coordonnées x_A
, y_A
, x_B
et y_B
des points \(A\)
et \(B\) et renvoie les coordonnées du vecteur \(\overrightarrow{AB}\) .
Exemples
>>> vecteur ( 0 , 2 , 3 , 6 )
(3, 4)
>>> vecteur ( 10 , 4 , 5 , - 8 )
(-5, -12)
Version vide Version à compléter
.128013(lbsSetxph4rdA-f1uma"ovg,_/B3=in
k:)y 2Pc030h0a0b0o0z06080G0J060o08080y0p0b0z0d0p020B03080m0n0n0o0g0F02090q060m0!0q0A030v0*0,0.0:0(0d0203130|160v130(0h0z0r0S0U0W0Y0e0z0s0e061k0e0b0%030N07060a1f0V0X0p1j1l1n1l0b1t1v1r0b0g140b0e0S0?080d0o0A0Y0H0p1x1h0p0k0P0a0A0o0n0a1r1Q1S1X1z1!1v1%1(0%040G0I0g0q0d0q080z0_0A0G0L1O0g0g0a0J200|1+0A140v1M2d1J1L1K1s0h1-0Y1n0A1$1}1r1c1e0T1y2n0z2p0A0q2t1r0d26142b2d2H0)1R212v1Y2A0g0-060%0l2a2L0'2K1,2N1z2P2R0%0H2V1S2X2b2m0p2$0o2S020x2)2c0(2,2!0Y2/2;0f2@2d2E0a2d2t2g0h1L2l2{0p0J2B1)1435152F2Y2c30033c0L2G2L2-0C0%0L0k300G3j2-0A0k0%0r270b0a0m0g3l2`1g1z0$02053J3q3a0A0%0c0u0i3Q2Z3L0Y3N0t3w3y3S0%0F3W3Y2M3!0p3$3'3K2w2.3U0u0w3-2-3;0}2W3x3?2O3*3`3|3a3N0E0D300B0G4d413R3/3T023V0i3{3 2*4f3Z3@0q0%0y3=4g3@4i3V4m2H4p3.4r0%0j4v4q434j3,4n2^4e4C3z444l4H4D1Y4s024u4M024P3)023+4A403(3/4W4G4Z4#4h4R4b4O4*3@3s02260b3H0{4.4@1Y3N3P4Z502#3_4S54423M0%3%4 5a2|4R4(2*553#0%0E4b0|3n33173i0v3g2e370|2h5y0o1u5r5u1d2X5u0M0O0Q02.
.128013(lbsSetxph4rdA-f1uma"ovg,_/B3=in
k:)y 2Pc030h0a0b0o0z06080G0J060o08080y0p0b0z0d0p020B03080m0n0n0o0g0F02090q060m0!0q0A030v0*0,0.0:0(0d0203130|160v130(0h0z0r0S0U0W0Y0e0z0s0e061k0e0b0%030N07060a1f0V0X0p1j1l1n1l0b1t1v1r0b0g140b0e0S0?080d0o0A0Y0H0p1x1h0p0k0P0a0A0o0n0a1r1Q1S1X1z1!1v1%1(0%040G0I0g0q0d0q080z0_0A0G0L1O0g0g0a0J200|1+0A140v1M2d1J1L1K1s0h1-0Y1n0A1$1}1r1c1e0T1y2n0z2p0A0q2t1r0d26142b2d2H0)1R212v1Y2A0g0-060%0l2a2L0'2K1,2N1z2P2R0%0H2V1S2X2b2m0p2$0o2S020x2)2c0(2,2!0Y2/2;0f2@2d2E0a2d2t2g0h1L2l2{0p0J2B1)1435152F2Y2c30033c0L2G2L2-0C0%0L0k300G3j2-0A0k0%0r270b0a0m0g3l2`1g1z0$02053J3q3a0A0%0c0u0i3Q2Z3L0Y3N0t3w3y3S0%0F3W3Y2M3!0p3$3'3K2w2.3U0u0w3-2-3;0}2W3x3?2O3*3`3|3a3N0E0D300B0G4d413R3/3T023V0i3{3 2*4f3Z3@0q0%0y3=4g3@4i3V4m2H4p3.4r0%0j4v4q434j3,4n2^4e4C3z444l4H4D1Y4s024u4M024P3)023+4A403(3/4W4G4Z4#4h4R4b4O4*3@3s02260b3H0{4.4@1Y3N3P4Z502#3_4S54423M0%3%4 5a2|4R4(2*553#0%0E4b0|3n33173i0v3g2e370|2h5y0o1u5r5u1d2X5u0M0O0Q02.
Norme d'un vecteur
Soit \(\vec{u}\) un vecteur du plan muni d'un repère orthonormé.
Écrire la fonction norme
qui prend en paramètres les coordonnées x_U
et y_U
du vecteur \(\vec{u}\) renvoie la norme \(\lvert\lvert\vec{u}\lvert\lvert\) .
Racine carrée
Il est possible de calculer la racine carrée d'un nombre positif en utilisant la fonction sqrt
présente dans le module math
.
On fait alors sqrt ( 5 )
pour calculer \(\sqrt5\) .
L'import est fait au début du code et la fonction est donc directement utilisable.
Exemples
>>> norme ( 3 , 4 )
5.0
>>> norme ( - 5 , - 12 )
13.0
.128013(lbsSetxph4rd5f1uma"ov+g,_/3=in
k:)y *q2Pc030h0a0b0n0y06080F0K060n08080x0o0b0y0d0o020A03080l0m0m0n0g0E02090p060l0#0p0z030v0+0-0/0;0)0d0203140}170v140)0h0y0q0T0V0X0Z0e0y0s0e061l0e0b0'030O07060a1g0W0Y0o1k1m1o1m0b1u1w1s0b0g150b0e0T0@080d0n0z0Z0I0o1y1i0o0j0Q0a0z0n0m0a1s1R1T1Y1A1#1w1'1)0'040F0J0g0p0d0p080y0`0z0F0M1P0g0g0a0K210}1,0z150v1N2e1K1M1L1t0h1.0Z1o0z1%1~1s1d1f0U1z2o0y2q0z0p2u1s0d27152c2e2I0*1S222w1Z2B0g0.060'0k2b2M0(2L1-2O1A2Q2S0'0I2W1T2Y2c2n0o2%0n2T020w2*2d0)2-2#0Z2:2=0f2^2,2M2.2~0'0i31182G0}2u2h0h1M2m2|0o0K2C1*153c163a2K0~2X033j0M2H333h0B0z0'0j1{0m310F2Z2N1h2$3A020.1N3F3H2.3z0'0y0m1}0g0b3P2{3J2}0'080H3X310A3+3Q3y0'0M0j3Z3x3#2/0j0'2%0a383!2x0o0%02053}3?3 3L0c0u0l442!3@410t3=4c460'0E494b3I3 410D0C3*0F4t3G3~1Z0B0'270b0l0g0|3r2+4v452P3%3(3Y4F2d3-4d0'434N3w4h4J02484a4T4P3 0p0'0G0G4m2.0m0y2(4g4n1Z4%020r4/344j4l4!4w1A4=4(4*3h4,4.4|4I1A4p3*0}3u0a2e2F5c3b1e3d2h2k2f0n1v5f0v3c0)5p0N0P0R02.
Longueur d'un segment
Soit \(A\) et \(B\) deux points du plan muni d'un repère orthonormé.
Écrire la fonction distance
qui prend en paramètres les coordonnées x_A
, y_A
, x_B
et y_B
des points \(A\)
et \(B\) et renvoie la longueur \(AB\) .
Racine carrée
Il est possible de calculer la racine carrée d'un nombre positif en utilisant la fonction sqrt
présente dans le module math
.
On fait alors sqrt ( 5 )
pour calculer \(\sqrt5\) .
L'import est fait au début du code et la fonction est donc directement utilisable.
Fonctions vecteur
et norme
chargées
Les fonctions vecteur
et norme
décrites dans les exercices précédents sont déjà chargées dans l'éditeur.
Vous pouvez les utiliser si vous le souhaitez.
Exemples
>>> distance ( 0 , 2 , 3 , 6 )
5.0
>>> distance ( 10 , 4 , 5 , - 8 )
13.0
.128013(lbsSetxph;rd45Af'1uma"ov+g,_/RB3=in
k:é)y *-q2IPc030h0a0b0q0D06080L0S060q08080C0r0b0D0d0r020F03080o0p0p0q0g0K02090s060o0,0s0E0L000q0p0d0f0L0z0a0_0g0O0o0a08030y0?0^0`0|0;0d02031r1k1u0y1r0;0h0D0t0#0%0(0*0e0D0v0e061I0e0b0/030W07060a1D0'0)0r1H1J1L1J0b1R1T1P0b0g1s0b0e0#0 080d0q0E0*0P0r1V1F0r0l0Y0a0E170a1P1;1?1{1X1~1T210p2302040L0R0g0s0d0s080D12140U1/0g0g0a0S2o1k250E1s0y1-2A1*1,1+1Q0h270*1L0E202l1P1A1C0$1W2K0D2M0E0s2Q1P0d2t1s2y2A2'0=1=142S1|2X0g0_060/0n2x2+0:2*262-1X2/2;0/0P2^1?2`2y2J0r2 0q2=020B332z0;362}0*393b0i3e352+373k0/0j3n1v2$1k2Q2D0h1,2I3i0r0S2Y2d0T1B1s2#0a2%2_3u3F0U3N2|1E1X0G0E0/0l2i0p3n0L2{2,3U3j3X020_1-3$3'373W0/0D180s0g0b3/3h3)380/080O3`3n0F453:3D0G0/0U0l3|3p3D0E0l4a0D080W0E0S0a3u3}2T0r0.02054p4e3~3+0c0x0k4w3T4r4t0w4d4E2.0/0K4B4D3(4F0/4H1l2_3%4q4K024A0A4O374G4I4P4X4M4!4T34473~4t0J0H440L4@4V4x4r49022t0b0o0g0E4'3q40423{4,2z4.4Q4u4v583S4(2~0/4Z533D0s0/0N5k4y5i4N5e5a1|4:5p4r5m020M0M5x1|0p0D315D1X5z0u5I0*4t5d2)4W5h024*5M0r5z5o5e4_4J5S4M4C5t5R5N0/0J5V5z5B5V5F5H5(4`5v5+441k3Q3M3v5}0y3y1k0b3A622G2B0q1S5 3y1q5f372t0p0x0l0q0G0a0x0e0B0/1c1e1g1i0L4=5t1x2`1r0Q060L1i0b0L0q0o0(0D0L2k6I690L0h0m110Y4j0a0g0L1T0!0l132v0D130!2#0I0S0I0U0E0b6t6v1y3I2R3~1Z1K1M1O6d3D2920220/2f090S0g0-6E0R0K1-133u3L5f2(3O5|6|3~4|4b5V4g4i4k1?4n4#3D5O7s5q4Y5s5Q5@1X4%5Z5u5$7y3O5)4s4R7m5r4+7z5#5*024S2'5!5g3j4L0x7N7H7A7Q4;4?4^7E7W7x0k7Z4-7I7C7T7)3 5T4B7-2z7U375z0C7L020t2u6.507v5b5P7!7P7?4A5'7O7V7J7R7 5%855^8g7D7I4z7Y8j7B7K8m7#7?5U5?895w5e0F4^7{480/4~50528t893+2 4o8x8e7u8O547+7_7i5b7S4U7=3+5%8U7=8z2'0;0y7h5~2A6b3x0V0X0Z02.
Vecteurs colinéaires
Soit \(\vec{u}\) et \(\vec{v}\) deux vecteurs du plan.
Écrire la fonction colineaires
qui prend en paramètres les coordonnées x_u
, y_u
, x_v
et y_v
des vecteurs \(\vec{u}\) et \(\vec{v}\) et renvoie la valeur booléenne indiquant si ces vecteurs sont colinéaires ou non.
Valeur booléenne
Il n'existe que deux valeurs booléennes : \(Vrai\) et \(Faux\) .
En Python on les note True
et False
.
Exemples
>>> colineaires ( 3 , 8 , - 6 , - 16 )
True
>>> colineaires ( 3 , 8 , 6 , 17 )
False
.128013(lbùsSetxph;rd45-f'10uma"ovTg,_.F/R3=in
Ok:é)y *àq2PcD030i0b0c0s0G06090P0V060s09090F0t0c0G0e0t020I03090q0r0r0s0h0O020a0u060q0:0u0H0P000s0r0e0g0P0D0b0}0h0S0q0b09030C0`0|0~100^0e02031v1o1y0C1v0^0i0G0v0(0*0,0.0f0G0x0f061M0f0c0?030!07060b1H0+0-0t1L1N1P1N0c1V1X1T0c0h1w0c0f0(13090e0s0H0.0T0t1Z1J0t0m0$0b0H1b0b1T1^1`1 1#221X250r2702040P0U0h0u0e0u090G16180Y1?0h0h0b0V2s1o290H1w0C1;2E1.1:1/1U0i2b0.1P0H242p1T1E1G0)1!2O0G2Q0H0u2U1T0e2x1w2C2E2+0_1_182W202#0h0}060?0o2B2/0@2.2a2;1#2?2^0?0T2|1`2~2C2N0t330s2_020E372D0^3a310.3d3f0j3i392/3b3o0?0k3r1z2)1o2U2H0i1:2M3m0t0V2$2h0X1F1w2(0b2*2}3y3J0Y3R301I1#0K0?0Y0m3r0P2 2:3Y3n0m0?3J2P0b0#2x1n1p3S3l3+0t0=02053y3`2X3c0?0d0z0q403t3H3}0y3'3)3u0?0O46483X424b4d412=440z0v4j3*4l0?4c3^383(4o324g4r4t3b3}0N0L3r0I0P4M4A493{3!020G3%4y2D4O4k4p0245474V024X4u200u0?0Q4n4P420H4D4s4%4(3b4+020l4.4Y4C024h4$2+4^3H4`4-4@4e3H4;4!4E584B0.4`0F0F4}4)1#0r0G0?0p4F4a0?4J4%4L4N5x594Q0?2x0c0q0h0H5k3b0K0V0?0w0h1l4K5y5f0t4R0b0%0b5r3{3}5u2+5w5x4M5z424R5C5E5G5e4/205J0?0B3e095W5v1o3U3Q3z5}0C3C1o0c3E622K2F0s1W5 3C1u3W5l0.2x0r0z0m0s0K0b0z0f0E0?1g1i1k1m0P5!3S1B2~1v0W1`0'1X0(0+0P0u080P060n0b0d3P0,0G173(5|3b1%1O1Q1S6d4f5c522}543{565H5a4=6+6)0?4|5.4~3n4D6%4z5(4*4,6.4:4q4?536{1#5h5j6=6e0t5n5p3y0C5|4'1m0c0P0M0v3e0q0M1Y0R6T3K6V1Q1(1R285/3Z5K025M5O4%5{3K4'6S2x0H0v0u0G1Y036U3H6W7u6Z730.5;7A5N5_2-7d7F0A1z6z110G0P5U6E7g7i7k147n0P7p7q2u7Q7t6Y7w6?5S7z5?5V7c7e6H187I7K7M7^1Y7`1'7|6!3H7W815^837$7'6c0J180e0b150P0s0q6Q0P077M86247K0O0b0h6K1Y0h0M0`060!7h0i0q0P0c7.5u1C3M2V3{7R8e7U21232f2h2j0a0V0h0;7h0U0O1;173y3P6d2,3S7e8!4R3$6~2=3-023/2Z3;0G3?5X4v3~974Z4#9a1#4m776#519d0.9f725R5b45713_7x9k4w8~4 4h9q388!4H6w385$6(5)5B0Z5,9v6@6$9K0t6*9g6,505d9m9s9O6:9N5b9i9Q6/02579U7~9o9T6'8!759N7a025q5`7#3V5~2E6b3B0Z0#0%02.
Points alignés
Soit \(A\) , \(B\) et \(C\) trois points du plan.
Écrire la fonction alignes
qui prend en paramètres les coordonnées x_A
, y_A
, x_B
, y_B
, x_C
et y_C
des points \(A\) , \(B\) et \(C\) et renvoie la valeur booléenne indiquant si ces points sont alignés ou non.
Valeur booléenne
Il n'existe que deux valeurs booléennes : \(Vrai\) et \(Faux\) .
En Python on les note True
et False
.
Fonctions vecteur
et colineaires
chargées
Les fonctions vecteur
et colineaires
décrites dans les exercices précédents sont déjà chargées dans l'éditeur.
Vous pouvez les utiliser si vous le souhaitez.
Exemples
>>> alignes ( - 2 , 2 , 1 , 1 , 7 , - 1 )
True
>>> alignes ( - 2 , 2 , 1 , 1 , 7 , - 2 )
False
Version vide Version à compléter Version à compléter (bis)
.128013(lbsSetxph;rd45AfC1890uma"ovT7g,_F/RB3=in
6k:é)y *-q2IPc030h0a0b0t0I06080R0Y060t08080H0u0b0I0d0u020K03080r0s0s0t0g0Q02090v060r0=0v0J0R000t0s0d0f0R0E0a0 0g0U0r0a08030D0|0~10120`0d02031x1q1A0D1x0`0h0I0w0*0,0.0:0e0I0z0e061O0e0b0^030$07060a1J0-0/0u1N1P1R1P0b1X1Z1V0b0g1y0b0e0*15080d0t0J0:0V0u1#1L0u0l0'0a0J1d0a1V1`1|211%241Z270s2902040R0X0g0v0d0v080I181a0!1^0g0g0a0Y2u1q2b0J1y0D1?2G1:1=1;1W0h2d0:1R0J262r1V1G1I0+1$2Q0I2S0J0v2W1V0d2z1y2E2G2-0{1{1a2Y222%0g0 060^0n2D2;0_2:2c2?1%2^2`0^0V2~1|302E2P0u350t2{020G392F0`3c330:3f3h0i3k3b2;3d3q0^0j3t3m3v3o3e0v2_3g0^0L3A312=1K343F36020y3K3n3N3p3P3H020o3T3C3V3E3G3h0p3t1B2+1q2W2J0h1=2O3D0Y2'2j0Z1H1y2*0a2,2 3+3^0!40323%0M0^0!0l3t0R3L3w0l0^3g1O2S1p1r413U2Z0u0@02053+4o2@0^0c0B0k4u3$4p4r0A4c4e3D0J0^0Q4z4B464D0^4F4m3a4d4v344x0B0F4N3M4P024R2-4U4C4w024L4Z4S2F4H3%4E4G4V3p4X0m4!3d4?4/024)4O4+4L4{4 4;4$0P0N3A0R5c514#4+4y0k4.4(57220v0^0H4@4*4W024y5j2 5e3d5n020T5q525s5h5b5d5l5s4L5i5C5f1%5z5p4 5x4I4K4Y5M5y0^5B5R5I4_4,4M4 0K5d5S3%4J5t4z555k4^0u5P5W5T5.5:5w5#5?5Y5^5,4X4A5(5*5}5-5K5{4T5}5@5!5=670B692F5+4p5z5Z5;5r5$5K5G5c5}48020I4b6d6o3e625v6a5=5z0S604p6f0k6h506b5 6y5D6p4z6C6i6N026G6P5N5$5h6L6j5m5o5Q6n6Q0u0s0I0^0q4|3D4r5a645*5H5=6u2z0b0r0g0J6H220M0Y0^0x0g1n6r6%1%6u0a0(0a6;4=0^6@2-5)6_6s6{0^6}6 716Y3d740^0C3g087g5(1q433 3,7F0D3/1q0b3;7K2M2H0t1Y7H3/1w456Z0u2z0s0B0l0t0M0a0B0e0G0^1i1k1m1o0R7k411D301x0W060R1o0b0R0t0r0.0I0R2w2s1e1R240a0g0R0,0R0l192B0I197{1a2z0J0w0v0Q1|7}1G2z2B1j267}1Z0R0g0O0|060$8r1!8c3^1e100%088i6@1E3{2X3%1(1Q1S1U7V3d2f26280^2l090Y0g0?7}0X0Q1?193+3~7V2.417E8X3D6u4a72344g024i0z4k7h4$4t566e6294224~6*7W6J9a1%9c5|985.6T8_7i4%8}6R9m5}9i6D6z5-4y6L9t4Q9q6A5%9z5=4r597a666B9C6c9d3w4X9m7b0:6l9C9x5'7l659k5K9R6V6)9j9w5U9$6E6O9O5_6q6^7o9)5.6K9M5o9V4`9_5A9{9@9J9!5/9}9'9v6+6f6$6V6m9(a75U639Y6`6z6|0#7s9 5h9+6z6F9 689}aba69eaeao6+aq7u5_6#a4a56U5=6-6/3K0D8^7G2G7T3.0#0%0(02.
.128013(lbsSetxph;rd45AfC1890uma"ovT7g,_F/RB3=in
6k:é)y *-q2IPc030h0a0b0t0I06080R0Y060t08080H0u0b0I0d0u020K03080r0s0s0t0g0Q02090v060r0=0v0J0R000t0s0d0f0R0E0a0 0g0U0r0a08030D0|0~10120`0d02031x1q1A0D1x0`0h0I0w0*0,0.0:0e0I0z0e061O0e0b0^030$07060a1J0-0/0u1N1P1R1P0b1X1Z1V0b0g1y0b0e0*15080d0t0J0:0V0u1#1L0u0l0'0a0J1d0a1V1`1|211%241Z270s2902040R0X0g0v0d0v080I181a0!1^0g0g0a0Y2u1q2b0J1y0D1?2G1:1=1;1W0h2d0:1R0J262r1V1G1I0+1$2Q0I2S0J0v2W1V0d2z1y2E2G2-0{1{1a2Y222%0g0 060^0n2D2;0_2:2c2?1%2^2`0^0V2~1|302E2P0u350t2{020G392F0`3c330:3f3h0i3k3b2;3d3q0^0j3t3m3v3o3e0v2_3g0^0L3A312=1K343F36020y3K3n3N3p3P3H020o3T3C3V3E3G3h0p3t1B2+1q2W2J0h1=2O3D0Y2'2j0Z1H1y2*0a2,2 3+3^0!40323%0M0^0!0l3t0R3L3w0l0^3g1O2S1p1r413U2Z0u0@02053+4o2@0^0c0B0k4u3$4p4r0A4c4e3D0J0^0Q4z4B464D0^4F4m3a4d4v344x0B0F4N3M4P024R2-4U4C4w024L4Z4S2F4H3%4E4G4V3p4X0m4!3d4?4/024)4O4+4L4{4 4;4$0P0N3A0R5c514#4+4y0k4.4(57220v0^0H4@4*4W024y5j2 5e3d5n020T5q525s5h5b5d5l5s4L5i5C5f1%5z5p4 5x4I4K4Y5M5y0^5B5R5I4_4,4M4 0K5d5S3%4J5t4z555k4^0u5P5W5T5.5:5w5#5?5Y5^5,4X4A5(5*5}5-5K5{4T5}5@5!5=670B692F5+4p5z5Z5;5r5$5K5G5c5}48020I4b6d6o3e625v6a5=5z0S604p6f0k6h506b5 6y5D6p4z6C6i6N026G6P5N5$5h6L6j5m5o5Q6n6Q0u0s0I0^0q4|3D4r5a645*5H5=6u2z0b0r0g0J6H220M0Y0^0x0g1n6r6%1%6u0a0(0a6;4=0^6@2-5)6_6s6{0^6}6 716Y3d740^0C3g087g5(1q433 3,7F0D3/1q0b3;7K2M2H0t1Y7H3/1w456Z0u2z0s0B0l0t0M0a0B0e0G0^1i1k1m1o0R7k411D301x0W060R1o0b0R0t0r0.0I0R2w2s1e1R240a0g0R0,0R0l192B0I197{1a2z0J0w0v0Q1|7}1G2z2B1j267}1Z0R0g0O0|060$8r1!8c3^1e100%088i6@1E3{2X3%1(1Q1S1U7V3d2f26280^2l090Y0g0?7}0X0Q1?193+3~7V2.417E8X3D6u4a72344g024i0z4k7h4$4t566e6294224~6*7W6J9a1%9c5|985.6T8_7i4%8}6R9m5}9i6D6z5-4y6L9t4Q9q6A5%9z5=4r597a666B9C6c9d3w4X9m7b0:6l9C9x5'7l659k5K9R6V6)9j9w5U9$6E6O9O5_6q6^7o9)5.6K9M5o9V4`9_5A9{9@9J9!5/9}9'9v6+6f6$6V6m9(a75U639Y6`6z6|0#7s9 5h9+6z6F9 689}aba69eaeao6+aq7u5_6#a4a56U5=6-6/3K0D8^7G2G7T3.0#0%0(02.
.128013(lbsSetxph4rdAfC1uma"ovg,_/B3=in
k:)y 2Pc030h0a0b0o0z06080G0J060o08080y0p0b0z0d0p020B03080m0n0n0o0g0F02090q060m0!0q0A030v0*0,0.0:0(0d0203130|160v130(0h0z0r0S0U0W0Y0e0z0s0e061k0e0b0%030N07060a1f0V0X0p1j1l1n1l0b1t1v1r0b0g140b0e0S0?080d0o0A0Y0H0p1x1h0p0j0P0a0A0o0n0a1r1Q1S1X1z1!1v1%1(0%040G0I0g0q0d0q080z0_0A0G0L1O0g0g0a0J200|1+0A140v1M2d1J1L1K1s0h1-0Y1n0A1$1}1r1c1e0T1y2n0z2p0A0q2t1r0d26142b2d2H0)1R212v1Y2A0g0-060%0l2a2L0'2K1,2N1z2P2R0%0H2V1S2X2b2m0p2$0o2S020x2)2c0(2,2!0Y2/2;0f2@2d2E0a2d2t2g0h1L2l2{0p0J2B1)1435152F2Y2c30033c0L2G2L2-0C0%0L0j300G3j2-0A0j0%2:1k2p083l2`1g1z0$02053H3q3a0A0%0c0u0i3O2Z3J0Y3L0t3w3y3Q0%0F3U3W2M3Y0p3!3$3I2w2.3S0u0w3+2-3/0}2W3x3;2O3(3^3`3a3|2H3 3P3-3R023T0k443-463~3%4a424e3}2*4j3=3L0E0D300B0G4w483X3=4b3T0i3_4n3k403K0%3#4F024y3,4A424D3:493=0q0%0y4S4z41020r270b0a0m0g4f4q0%3N4L4p4!4C4+1Y4h2*4N3z4Q4?4I024K474:2#3@4E2J4H3Z4J4Y4O4!3)552W5258020E4u4x4`3'4c3U4m564T4@594L5m4k023)0i5q4i570p4V024X5v5g3?4#4%4(4*4/5D3L4.5r4Z535o3V5P5s4~505C5Z2|4|5Y5U5h5#4_5J4B0u5B4o5Q5u515D4b3)5;4G5%3.0%5j4L4v4x5J3s02260b4)0{5I5_0%3c2o0a0O263G5)5b4~5S5f6d5W5e5=5~4^2c5w4P5y3U6s5}5*5 4 5a4{5W5|3p6D6v4M5.4Q6J5J4r4u0|3n33173i0v3g2e370|2h6%0o1u6W6Z1d2X6Z0M0O0Q02.
# Tests
(insensible à la casse)(Ctrl+I)